• HttpClient笔记与踩过的坑


      本来有个指纹采集功能做了个winFrom小程序 在本地测试都还能行,后来快上线的时候发现 客户用的阿里云数据库, 不对外公布 ,然后发现本地采集的数据没办法上传到数据库怎么办呢?  

      然后曲线救国,用webapi的方式在通过把数据上传到网站对数据库进行读写。  哈哈哈!!

      然后之前用的都是HttpWebRequest ,不过这个在这里就不适用了,这里一个小小的get请求就写太多代码了,发现httpClient代码更少就偷个懒来学习下怎么使用httpClient

     关于HttpWebRequest 我之前有讲过想了解的,看我的之前的博客http://www.cnblogs.com/dzhengyang/p/7099764.html

     关于httpClient可以进行同步,也可以进行异步,楼主就是这里被坑了~~~

     开始学习吧 上代码

     首先是同步请求

     1         /// <summary>
     2         /// 获取门禁用户
     3         /// </summary>
     4         /// <returns></returns>
     5         public static string DoorAllList()
     6         {
     7             var result = "";
     8             string url = "http://www.baidu.com/Api/GetDoorUserList";
     9             //创建HttpClientHandler的AutomaticDecompression
    10             var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
    11             //创建一个httpClient;
    12             using (var client = new HttpClient(handler))
    13             {
    14                 //同步请求
    15                 var response = client.GetAsync(url);
    16                 //在这里会等待response返回。
    17                 var ret = response.Result;
    18                 //最终等待返回结果
    19                 result = ret.Content.ReadAsStringAsync().Result;
    20             }
    21             return result;
    22         }

     同步没什么说的比较简单

     异步请求

     1         /// <summary>
     2         /// 异步请求
     3         /// </summary>
     4         public static async void DoorAll()
     5         {
     6             var result = "";
     7             string url = "http://baidu/api/DoorApi/GetDoorUserList";
     8             //创建HttpClientHandler的AutomaticDecompression
     9             var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
    10             //创建一个httpClient;
    11             using (var client = new HttpClient(handler))
    12             {
    13                 //异步请求
    14                 var response =await client.GetAsync(url);
    15                 //确保HTTP成功状态值
    16                 response.EnsureSuccessStatusCode();
    17                 //返回结果
    18                 await response.Content.ReadAsStringAsync();
    19             }
    20         }

    异步请求的方法要加关键字 async 然后在等待结果的时候要用关键字 await  如果不用关键字await就会有报错

     这个坑要小心一点 

     好了今天就是我的进步了 总结到这里了  

  • 相关阅读:
    牛客多校第一场 A Equivalent Prefixes 单调栈(笛卡尔树)
    HDU多校第三场 Hdu6606 Distribution of books 线段树优化DP
    (待写)
    Hdu6586 String 字符串字典序贪心
    2019HDU多校第一场1001 BLANK (DP)(HDU6578)
    iOS触摸事件
    iOS获取相册/相机图片-------自定义获取图片小控件
    自定义表情输入框
    iOS版本、iPhone版本、Xcode版本比对
    Swift备忘录
  • 原文地址:https://www.cnblogs.com/dzhengyang/p/7353623.html
Copyright © 2020-2023  润新知