日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

在C#7.1之后.NET推出HttpClient類代替WebRequest, HttpWebRequest, ServicePoint, and WebClient ,先來看下他們在以前的作用

  • • HttpWebRequest和HttpWebResponse類是用于發送和接收HTTP數據的一種方式

  • • ServicePoint提供 HTTP 連接的連接管理

  • • WebClient 提供用于將數據發送到由 URI 標識的資源及從這樣的資源接收數據的常用方法

相信大家都使用過http的幫助類,來幫助我們處理請求客戶端。C#7.1版本推出 HttpClient ,現在有了HttpClient,完全可以不再使用幫助類了,HttpClient使用起來更方便,甚至你連請求方法是Post,Put,Get都不用寫,功能十分強大。

WebRequest, HttpWebRequest, ServicePoint, and WebClient 已經過時,請使用 HttpClient

使用(異步請求,下載等)

屬性

方法

GetAsync(String)以異步操作將 GET 請求發送給指定 URI。

普通的get請求獲取請求消息 返回的HttpResponseMessage包含所有的響應信息,比如說狀態碼,響應的消息頭,相應的json等都可以用這個來處理

GetByteArrayAsync(String)將 GET 請求發送到指定 URI 并在異步操作中以字節數組的形式返回響應正文

using (var webClient = new System.Net.Http.HttpClient())
{
var bytes = awAIt webClient.GetByteArrayAsync(vodeourl.VideoUrl);
//var fileStream = new FileStream($"{videoid}.mp4", FileMode.Create, FileAccess.Write);
//fileStream.Write(stream, 0, stream.Length);
//fileStream.Dispose();
 }

添加cookies

var handler = new HttpClientHandler();
var cookieContainer = new CookieContainer();
cookieContainer.Add(new Uri(url), new Cookie("cookie_name", "cookie_value"));
handler.CookieContainer = cookieContainer;
using(var webClient = new System.Net.Http.HttpClient(handler))
{
 webClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0");
 webClient.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
 webClient.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");
 var aa = webClient.GetStringAsync(url).Result;
 return aa.ToString();
 //await Console.Out.WriteLineAsync(str);
 //var fileStream = new FileStream($"{videoid}.mp4", FileMode.Create, FileAccess.Write);
 //fileStream.Write(stream, 0, stream.Length);
 //fileStream.Dispose();
}

請求Json格式 或者 通過Post請求數據:Application/x-www-form-urlencoded

var httpClient = new HttpClient();
var url = "http://192.168.0.9:9000/Demo/PostUrlCode";
var response = await httpClient.PostAsync(url, new FormUrlEncodedContent(new List<KeyValuePair<string, string>>()
{
 new KeyValuePair<string, string>("name","小明"),
 new KeyValuePair<string, string>("age","20")
}));
var str = await response.Content.ReadAsStringAsync();

上傳文件

using (HttpClient client = new HttpClient())
{
 var content = new MultipartFormDataContent();
 //添加字符串參數,參數名為qq
 content.Add(new StringContent("123456"), "qq");

 string path = Path.Combine(System.Environment.CurrentDirectory, "1.png");
 //添加文件參數,參數名為files,文件名為123.png
 content.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(path)), "file", "123.png");

 var requestUri = "http://192.168.1.108:56852/api/Test/SaveFile";
 var result = client.PostAsync(requestUri, content).Result.Content.ReadAsStringAsync().Result;

 Console.WriteLine(result);
}

請求超時

var httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromSeconds(10); // 設置超時時間為10秒

var url = "xxxxxxxxxx";
List<KeyValuePair<string, string>> fromdic = dic.ToList();
var sign = Tool.Sign(dic, key);
fromdic.Add(new KeyValuePair<string, string>("sign", sign));

CancellationTokenSource cts = new CancellationTokenSource();
cts.CancelAfter(TimeSpan.FromSeconds(10)); // 設置取消請求的時間為10秒

分享到:
標簽:HttpClient
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定