zoukankan      html  css  js  c++  java
  • MSDN给出的HttpClient使用示例

     1 using System;
     2 using System.Json;
     3 using System.Net.Http;
     4 
     5 namespace WorldBankSample
     6 {
     7     /// <summary>
     8     /// Sample download list of countries from the World Bank Data sources at http://data.worldbank.org/
     9     /// </summary>
    10     class Program
    11     {
    12         static string _address = "http://api.worldbank.org/countries?format=json";
    13 
    14         static void Main(string[] args)
    15         {
    16             // Create an HttpClient instance
    17             HttpClient client = new HttpClient();
    18 
    19             // Send a request asynchronously continue when complete
    20             client.GetAsync(_address).ContinueWith(
    21                 (requestTask) =>
    22                 {
    23                     // Get HTTP response from completed task.
    24                     HttpResponseMessage response = requestTask.Result;
    25 
    26                     // Check that response was successful or throw exception
    27                     response.EnsureSuccessStatusCode();
    28 
    29                     // Read response asynchronously as JsonValue and write out top facts for each country
    30                     response.Content.ReadAsAsync<JsonArray>().ContinueWith(
    31                         (readTask) =>
    32                         {
    33                             Console.WriteLine("First 50 countries listed by The World Bank...");
    34                             foreach (var country in readTask.Result[1])
    35                             {
    36                                 Console.WriteLine("   {0}, Country Code: {1}, Capital: {2}, Latitude: {3}, Longitude: {4}",
    37                                     country.Value["name"],
    38                                     country.Value["iso2Code"],
    39                                     country.Value["capitalCity"],
    40                                     country.Value["latitude"],
    41                                     country.Value["longitude"]);
    42                             }
    43                         });
    44                 });
    45 
    46             Console.WriteLine("Hit ENTER to exit...");
    47             Console.ReadLine();
    48         }
    49     }
    50 }

    其中涉及了异步的操作,可以在以后的工作中加以借鉴。

    注释:

    ContinueWith是Task对象的一个方法。ContinueWith接受一个参数,这个参数是Action<T>,而Action<T>是委托,指向一个有一个参数、无返回值的方法。当然参数的类型是由T给出的。具体的来说,这里ContinueWith的参数类型是Action<Task>,且这个Task类型的参数是自动传递的。例子里给出了两个匿名方法来实现委托,都无返回值,参数是Task类型,参数由ContinueWith前面方法返回的Task自动传入。

  • 相关阅读:
    计算机网络 学习笔记-传输层:TCP协议简介
    C/C++里的const(2)
    C语言变量声明加冒号的用法
    CTL_CODE说明
    FreeImage.lib库的配置和简单使用 转
    WSASocket()与Socket()的区别 转
    Win7下运行VC程序UAC权限问题 VC2010设置UAC权限方法
    MFC通过URL下载并保存文件代码 转载
    opencv 数据类型转换:CvArr, Mat, CvMat, IplImage, BYTE 转
    ISIS Scanner Errors codes
  • 原文地址:https://www.cnblogs.com/shuada/p/2945664.html
Copyright © 2011-2022 走看看