转载地址https://www.cjavapy.com/article/50/
本文主要介绍分别通过HttpClient、Flurl.Http、WebRequest和WebClient发送Get和Post请求的方法。
1、通过HttpClient发送Get和Post请求

适用平台:.NET Framework 4.5+, .NET Standard 1.1+, .NET Core 1.0+

其它平台的移植版本可以通过Nuget来安装。(Nuget使用方法:http://www.cjavapy.com/article/21/)

命名空间:using System.Net.Http;

HttpClient推荐使用单一实例共享使用,发关请求的方法推荐使用异步的方式,代码如下,

private static readonly HttpClient client = new HttpClient();
//发送Get请求
var responseString = await client.GetStringAsync("http://www.example.com/recepticle.aspx");
//发送Post请求
var values = new Dictionary
{{ "thing1", "hello" },{ "thing2", "world" }
};
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("http://www.example.com/recepticle.aspx", content);
var responseString = await response.Content.ReadAsStringAsync();

2、通过第三方类库发送Get和Post请求

1)Flurl.Http(可以通过Nuget来安装)

命名空间:using Flurl.Http;

//发送Get请求
var responseString = await "http://www.example.com/recepticle.aspx".GetStringAsync();
//发送Post请求
var responseString = await "http://www.example.com/recepticle.aspx".PostUrlEncodedAsync(new { thing1 = "hello", thing2 = "world" }).ReceiveString();

2)RestSharp(可以通过Nuget来安装)

//发送Get和Post请求RestClient client = new RestClient("http://example.com");//指定请求的urlRestRequest req = new RestRequest("resource/{id}", Method.GET);//指定请求的方式,如果Post则改成Method.POST
request.AddParameter("name", "value"); // 添加参数到 URL querystring
request.AddUrlSegment("id", "123"); // 替换上面指定请求方式中的{id}参数
//req.AddBody(body); /*如发送post请求,则用req.AddBody()指定body内容*/
//发送请求得到请求的内容
//如果有header可以使用下面方法添加
//request.AddHeader("header", "value");
IRestResponse response = client.Execute(request);
//上传一个文件
//request.AddFile("file", path);
var content = response.Content; // 未处理的content是string
//还可以下面几种方式发送请求
//发送请求,反序列化请求结果
IRestResponse response2 = client.Execute(request);
var name = response2.Data.Name;
//发送请求下载一个文件,并保存到path路径
client.DownloadData(request).SaveAs(path);
// 简单发送异步请求
await client.ExecuteAsync(request);
// 发送异常请求并且反序列化结果
var asyncHandle = client.ExecuteAsync(request, response => {Console.WriteLine(response.Data.Name);
});
//终止异步的请求
asyncHandle.Abort();

3、比较老一点的方法通过WebRequest发送请求

适用平台:.NET Framework 1.1+, .NET Standard 2.0+, .NET Core 1.0+

命名空间:
using System.Net;
using System.Text; // for class Encoding
using System.IO; // for StreamReader

//发送Get请求
var request = (HttpWebRequest)WebRequest.Create("http://www.example.com/recepticle.aspx");
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
//发送Post请求
var request = (HttpWebRequest)WebRequest.Create("http://www.example.com/recepticle.aspx");
var postData = "thing1=hello";postData += "&thing2=world";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

4、通过WebClient的方式发送请求

适用平台:.NET Framework 1.1+, .NET Standard 2.0+, .NET Core 2.0+

命名空间:
using System.Net;
using System.Collections.Specialized;

//发送Get请求
using System.Net;
using System.Collections.Specialized;
//发送Post请求
using (var client = new WebClient())
{var values = new NameValueCollection();values["thing1"] = "hello";values["thing2"] = "world";var response = client.UploadValues("http://www.example.com/recepticle.aspx", values);var responseString = Encoding.Default.GetString(response);
}

.Net(C#)后台发送Http Get和Http Post请求的几种方法总结(可参考下)相关推荐

  1. php发送post请求的三种方法

    这篇文章主要介绍了php发送post请求的三种方法,分别使用curl.file_get_content.fsocket来实现post提交数据,需要的朋友可以参考下 class Request{ pub ...

  2. java发送get请求_java发送http get请求的两种方法(总结)

    长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) thro ...

  3. Ajax向后端发送PUT请求的两种方法

    文章目录 一.将POST请求修改为PUT请求 二.直接发送PUT请求 一.将POST请求修改为PUT请求 通过HiddenHttpMethodFilter过滤器将POST请求修改为PUT请求 需要传入 ...

  4. Python接口测试- requests 发送 post 请求的几种方法

    目录 前言: 发送 json 格式的数据 前言:  想了解更多相关知识请关注我吧!或者点击这里领取全套[软件测试/自动化测试]海量资料免费领取 POST 请求用于向服务器发送数据.与 get 相比更安 ...

  5. php发请求的方法,php发送http请求的几种方法

    有很多时候,我们还是需要用php去发送http请求的,它可以模拟浏览器的行为,通常它的应用场景有:1.后端测试自己的接口.2.后端请求别人的数据. 后端测试自己的接口,比如我们写了一个返回json数据 ...

  6. php如何发起get网络请求,php发送get、post请求的几种方法

    转自:http://blog.csdn.net/haha00217/article/details/7969504 方法1: 用file_get_contents 以get方式获取内容 1 方法2: ...

  7. php is_post,PHP发送get、post请求的6种方法简明总结

    方法1: 用file_get_contents 以get方式获取内容: $url='http://www.jb51.net/'; $html = file\_get\_contents($url); ...

  8. php发送get、post请求的几种方法

    方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/'; $html = file_get_contents ...

  9. c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#实现ajax通信,通过向服务器后台发送json数据,接收响应数据提交给前台. 其中包含两个主要函数,发送数据,接收响应数据的Http请求响应函数. ...

最新文章

  1. Ctrl + z 和 Linux jobs
  2. linux系统的sudo apt-get命令大全
  3. Codeforces Round #375 (Div. 2)
  4. Python脚本配合Linux计划任务工作
  5. 「裸奔」的数据隐私!
  6. Adobe DPS解决方案工作流程及其收费情况介绍
  7. 常用web前端UI组件库
  8. 【微信小程序】合法域名校验出错,不在以下合法域名列表中 解决方法
  9. 【设计模式11】备忘录和解释器模式 SpelExpressionParser
  10. 有什么好用的gif制作软件 制作GIF表情包教程
  11. 传输线设计的参量解析
  12. 耐看的《银元时代生活史》
  13. Python PEP—Python增强提案
  14. 介绍一款VideoPad 6.01汉化版免费的电影制作视频编辑器
  15. Indian Summer
  16. uniapp写小程序组件封装修改数据不渲染
  17. niginx参数配置详解(转)
  18. jQuery Masonry构建pinterest网站布局注意要点(转)
  19. 蓝桥杯 算法训练 黑色星期五Python实现 吉姆拉尔森公式
  20. Shell--变量的显示与设置、环境变量、语系变量

热门文章

  1. 滴滴发布全球首款定制网约车D1 ——汽车迎来新物种,共享出行进入新阶段
  2. 糯米团—重制“iPhone团购信息客户端”(二)
  3. 认知智能真的来了?且看道翰天琼认知智能三大技术体系!认知智能真的来了。
  4. 电压与电流信号的拉绳位移传感器均可采用三线制或者四线制接线方法
  5. MAT分析OOM dump文件方法
  6. 计算机组成原理 学习总结3.6  Cache存储器
  7. 单招面试计算机对口自我介绍范文,最新单招面试自我介绍范文
  8. DS1302时钟芯片
  9. 龙族幻想微信一区哪个服务器人多,龙族幻想微信一区-命运之刃开服时间表_龙族幻想新区开服预告_第一手游网手游开服表...
  10. 基于FPGA的spwm产生VHDL