当前位置: 首页 > news >正文

.NET处理HTTP请求

第一种:使用HttpWebRequest

string result = "";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(httpUrl);
            request.Method = "POST";
            request.ContentType = "application/json";
            string data = "{\n\"header\": {\n\"token\": \"30xxx6aaxxx93ac8cxx8668xx39xxxx\",\n\"username\": \"jdads\",\n\"password\": \"liuqiangdong2010\",\n\"action\": \"\"\n},\n\"body\": {}\n}";
            data = jsonData;
            byte[] byteData = Encoding.UTF8.GetBytes(data.ToString());
            request.ContentLength = byteData.Length;

            using (Stream postStream = request.GetRequestStream())
            {
                postStream.Write(byteData, 0, byteData.Length);
            }
            try
            {
                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    result = reader.ReadToEnd();
                    Console.WriteLine(result);

                }
            }
            

 


第二种:WebClient,也过时了:
第三种:HttpClient 当前主流用法,异步请求,自.NET4.5开始可从Nuget包管理中获取。

 static async Task<Product> GetProductAsync(string path)
        {
            Product product = null;
            HttpResponseMessage response = await client.GetAsync(path);
            if (response.IsSuccessStatusCode)
            {
                product = await response.Content.ReadAsAsync<Product>();
            }
            return product;
        }

 

第四种:第三方类库:

RestSharp

REST API请求测试类库,可通过 NuGet 获得。

Flurl.Http

最新的便捷的api测试工具,使用HttpClient实现,可通过 NuGet 安装。

 

参考

Call a Web API From a .NET Client (C#)

转载于:https://www.cnblogs.com/xinyf/p/10045577.html

相关文章:

  • JAVA入门到精通-第85讲-url.port.socket编程原理
  • Java Socket实战之四:传输压缩对象
  • Python csv模块读取基本操作
  • PHP语法之如何获取变量的名称
  • vue-cli3搭建项目
  • Spark ShuffleDependency Shuffle依赖关系
  • 第一课_设备树的引入与体验(基于linux4.19内核版本)
  • 微软宣布开源WPF、WinForms和WinUI
  • 编写目的和概述的资料搜集与分析
  • channel的高级玩法
  • SmartBear SoapUI Pro入门教程--第一次功能测试(二)
  • 【LDAP安装】在已编译安装的PHP环境下安装LDAP模块
  • Python数据可视化2018:数据可视化库为什么这么多?
  • 如何用纯 CSS 创作一个“女神来了,快让路”的动画
  • 3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [笔记] php常见简单功能及函数
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《深入 React 技术栈》
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CODING 缺陷管理功能正式开始公测
  • CSS 提示工具(Tooltip)
  • django开发-定时任务的使用
  • docker-consul
  • Docker入门(二) - Dockerfile
  • Fabric架构演变之路
  • github指令
  • Git初体验
  • Hexo+码云+git快速搭建免费的静态Blog
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • java 多线程基础, 我觉得还是有必要看看的
  • Linux Process Manage
  • Linux各目录及每个目录的详细介绍
  • Phpstorm怎样批量删除空行?
  • Redash本地开发环境搭建
  • spring + angular 实现导出excel
  • vue的全局变量和全局拦截请求器
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 看域名解析域名安全对SEO的影响
  • 来,膜拜下android roadmap,强大的执行力
  • 走向全栈之MongoDB的使用
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​比特币大跌的 2 个原因
  • ​批处理文件中的errorlevel用法
  • #FPGA(基础知识)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (06)Hive——正则表达式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Java)【深基9.例1】选举学生会
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu