1. 需要的库类

  1. \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll
  2. System.Net.Http.HttpClient

2. 代码

  1. public class HttpClientHelper
  2. {
  3. private static readonly object LockObj = new object();
  4. private static HttpClient client = null;
  5. public HttpClientHelper()
  6. {
  7. GetInstance();
  8. }
  9. public static HttpClient GetInstance()
  10. {
  11. if (client == null)
  12. {
  13. lock (LockObj)
  14. {
  15. if (client == null)
  16. {
  17. client = new HttpClient();
  18. }
  19. }
  20. }
  21. return client;
  22. }
  23. public async Task<string> PostAsync(string url, string strJson)//post异步请求方法
  24. {
  25. try
  26. {
  27. HttpContent content = new StringContent(strJson);
  28. content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
  29. //由HttpClient发出异步Post请求
  30. HttpResponseMessage res = await client.PostAsync(url, content);
  31. if (res.StatusCode == System.Net.HttpStatusCode.OK)
  32. {
  33. string str = res.Content.ReadAsStringAsync().Result;
  34. return str;
  35. }
  36. else
  37. return null;
  38. }
  39. catch (Exception ex)
  40. {
  41. return null;
  42. }
  43. }
  44. public string Post(string url, string strJson)//post同步请求方法
  45. {
  46. try
  47. {
  48. HttpContent content = new StringContent(strJson);
  49. content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
  50. //client.DefaultRequestHeaders.Connection.Add("keep-alive");
  51. //由HttpClient发出Post请求
  52. Task<HttpResponseMessage> res = client.PostAsync(url, content);
  53. if (res.Result.StatusCode == System.Net.HttpStatusCode.OK)
  54. {
  55. string str = res.Result.Content.ReadAsStringAsync().Result;
  56. return str;
  57. }
  58. else
  59. return null;
  60. }
  61. catch (Exception ex)
  62. {
  63. return null;
  64. }
  65. }
  66. public string Get(string url)
  67. {
  68. try
  69. {
  70. var responseString = client.GetStringAsync(url);
  71. return responseString.Result;
  72. }
  73. catch (Exception ex)
  74. {
  75. return null;
  76. }
  77. }
  78. }

3. Http 系列

3.1 发起请求

使用 HttpWebRequest 发起 Http 请求:https://www.cnblogs.com/MichaelLoveSna/p/14501036.html

使用 WebClient 发起 Http 请求 :https://www.cnblogs.com/MichaelLoveSna/p/14501582.html

使用 HttpClient 发起 Http 请求:https://www.cnblogs.com/MichaelLoveSna/p/14501592.html

使用 HttpClient 发起上传文件、下载文件请求:https://www.cnblogs.com/MichaelLoveSna/p/14501603.html

3.2 接受请求

使用 HttpListener 接受 Http 请求:https://www.cnblogs.com/MichaelLoveSna/p/14501628.html

使用 WepApp 接受 Http 请求:https://www.cnblogs.com/MichaelLoveSna/p/14501612.html

使用 WepApp 处理文件上传、下载请求:https://www.cnblogs.com/MichaelLoveSna/p/14501616.html

C# 应用 - 使用 HttpClient 发起 Http 请求的更多相关文章

  1. httpclient发起https请求以及获取https返回内容

    工作中的需要,使用Apache httpclient发起获取通过https返回的内容,试了很多网上的解决办法都不行,查阅了Apache httpclient的官方文档,最后终于找出解决方法,分享给需要 ...

  2. 通过HttpClient发起Get请求,获取Json数据,然后转为java数据,然后批量保存数据库;

    Json转java所需Jar包: commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,commons-lang-2.5.jar,comm ...

  3. 利用httpClient发起https请求

    HttpClientBuilder b = HttpClientBuilder.create();// setup a Trust Strategy that allows all certifica ...

  4. C# 应用 - 使用 HttpClient 发起上传文件、下载文件请求

    1. 示例代码 using System; using System.IO; using System.Net.Http; /// <summary> /// 下载文件 /// </ ...

  5. [Java] 两种发起POST请求方法,并接收返回的响应内容的处理方式

    1.利用apache提供的commons-httpclient-3.0.jar包 代码如下: /** * 利用HttpClient发起POST请求,并接收返回的响应内容 * * @param url ...

  6. C# 应用 - 使用 HttpWebRequest 发起 Http 请求

    helper 类封装 调用 1. 引用的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll Syste ...

  7. C# 应用 - 使用 WebClient 发起 Http 请求

    1. 需要的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.dll System.Net.WebCli ...

  8. android4.0 HttpClient 以后不能在主线程发起网络请求

    android4.0以后不能在主线程发起网络请求,该异步网络请求. new Thread(new Runnable() { @Override public void run() { // TODO ...

  9. HttpClient发起Http/Https请求工具类

    <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl ...

随机推荐

  1. ASP.NET 部署IIS后如何访问共享目录文件

    1.我的电脑-->管理-->系统工具-->本地用户和组-->用户-->右键新建用户-->创建一个与远程文件夹相同的账号密码! 如下图: 以上为部署接口服务器中的用户 ...

  2. 深入了解gradle和maven的区别

    目录 简介 gradle和maven的比较 可扩展性 性能比较 依赖的区别 从maven迁移到gradle 自动转换 转换依赖 转换repositories仓库 控制依赖的版本 多模块项目 profi ...

  3. python自动化运维之CMDB篇-大米哥

    python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ  ...

  4. Docker网络模式详解

    一.Docker四种工作模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .hosthost:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用 ...

  5. 新闻类爬虫库:Newspaper

    newspaper库是一个主要用来提取新闻内容及分析的Python爬虫框架.此库适合抓取新闻网页.操作简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,除此之外,使用过程你不 ...

  6. python--通过ocr对数据可视化视频还原为csv,进行简单的分析

    见github https://github.com/TouwaErioH/Machine-Learning/tree/master/video/video 题目描述: source https:// ...

  7. vue-router离开当前页面提示未保存,解决在使用beforeRouteLeave弹窗多次闪现问题

    在使用beforeRouteLeave时要注意两点: 1. next(false)阻止路由继续进行,若不先阻止,会多次执行守卫中的代码 2. 利用setTimeout延时触发弹窗,避免出现闪现情况

  8. 010. NET5_命令参数读取+配置多种读取

    上节课遗留问题:上节脚本启动后,CSS样式丢失问题 解决办法:a.拷贝丢失的wwwroot目录:b. 给UesStaticFiles类指定读取wwwroot目录 静态文件读取 Nuget引入:Micr ...

  9. CDN 工作原理剖析

    CDN 工作原理剖析 CDN / Content Delivery Network / 内容分发网络 https://www.cloudflare.com/zh-cn/learning/cdn/wha ...

  10. css skeleton & web app skeleton

    css skeleton & web app skeleton skeleton https://www.cnblogs.com/xgqfrms/p/10437258.html https:/ ...