糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > .Net(C#)后台发送Http Get和Http Post请求的几种方法总结(可参考下)

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

时间:2022-06-20 18:10:28

相关推荐

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

转载地址/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使用方法:/article/21/)

命名空间:using .Http;

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

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

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

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

命名空间:using Flurl.Http;

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

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

//发送Get和Post请求RestClient client = new RestClient("");//指定请求的urlRestRequest req = new RestRequest("resource/{id}", Method.GET);//指定请求的方式,如果Post则改成Method.POSTrequest.AddParameter("name", "value"); // 添加参数到 URL querystringrequest.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 ;

using System.Text; // for class Encoding

using System.IO; // for StreamReader

//发送Get请求var request = (HttpWebRequest)WebRequest.Create("/recepticle.aspx");var response = (HttpWebResponse)request.GetResponse();var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();//发送Post请求var request = (HttpWebRequest)WebRequest.Create("/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 ;

using System.Collections.Specialized;

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

如果觉得《.Net(C#)后台发送Http Get和Http Post请求的几种方法总结(可参考下)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。