如何在后台做网站流程,中山精品网站建设机构,申请一个域名可以建设一个网站吗,网站建设中联系我们怎么写本文主要介绍分别通过HttpClient、Flurl.Http、WebRequest和WebClient发送Get和Post请求的方法。
1、通过HttpClient发送Get和Post请求
适用平台#xff1a;.NET Framework 4.5, .NET Standard 1.1, .NET Core 1.0
其它平台的移植版本可以通过Nuget来安装。
命名空间…本文主要介绍分别通过HttpClient、Flurl.Http、WebRequest和WebClient发送Get和Post请求的方法。
1、通过HttpClient发送Get和Post请求
适用平台.NET Framework 4.5, .NET Standard 1.1, .NET Core 1.0
其它平台的移植版本可以通过Nuget来安装。
命名空间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请求
1Flurl.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();
2RestSharp(可以通过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 thing1hello;postData thing2world;
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;
using System.Net;
using System.Collections.Specialized;
//发送Get请求string url string.Format(http://localhost:28450/api/values?p1ap2b);using (var wc new WebClient())
{Encoding enc Encoding.GetEncoding(UTF-8);Byte[] pageData wc.DownloadData(url);string re enc.GetString(pageData);
}
//发送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);
}