专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

.NET/C#发起GET和POST请求的几种方法

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:35:54       共计:3636 浏览

.NET/C#发起GET和POST请求的几种方法

第一种:HttpWebRequest

using System.Net; 

GET:

var request = (HttpWebRequest)WebRequest.Create("http://www.leadnt.com/recepticle.aspx");
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

POST:

quest = (HttpWebRequest)WebRequest.Create("http://www.leadnt.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(); 

第二种:WebClient,也过时了:

using System.Net;
using System.Collections.Specialized; 

GET:

using (var client = new WebClient())
{
    var responseString = client.DownloadString("http://www.leadnt.com/recepticle.aspx");
} 

POST:

using (var client = new WebClient())
{
    var values = new NameValueCollection();
    values["thing1"] = "hello";
    values["thing2"] = "world";
 
    var response = client.UploadValues("http://www.leadnt.com/recepticle.aspx", values);
 
    var responseString = Encoding.Default.GetString(response);
} 

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

using System.Net.Http; 
  • 1

GET:

using (var client = new HttpClient())
{
    var responseString = client.GetStringAsync("http://www.mydomain.com/recepticle.aspx");
} 

POST:

using (var client = new HttpClient())
{
    var values = new List<KeyValuePair<string, string>>();
    values.Add(new KeyValuePair<string, string>("thing1", "hello"));
    values.Add(new KeyValuePair<string, string>("thing2 ", "world"));
 
    var content = new FormUrlEncodedContent(values);
 
    var response = await client.PostAsync("http://www.mydomain.com/recepticle.aspx", content);
 
    var responseString = await response.Content.ReadAsStringAsync();
} 

第四种:第三方类库:

RestSharp

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

Flurl.Http

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

using Flurl.Http; 
  • 1

GET:

var responseString = await "http://www.mydomain.com/recepticle.aspx"
    .GetStringAsync(); 
  • 1
  • 2

POST:

var responseString = await "http://www.mydomain.com/recepticle.aspx"
    .PostUrlEncodedAsync(new { thing1 = "hello", thing2 = "world" })
    .ReceiveString(); 
  • 1
  • 2
  • 3

原文地址:https://www.cnblogs.com/xdot/p/6306508.html

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:c# 以换行(\r\n)拆分字符串 | ·下一条:C# 使用 JObject 解析 json

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有