C#之HttpClient的同步使用方式
C# HttpClient的同步使用
無(wú)返回值 函數(shù)
private async void getservertime() { string servertime = "0";//實(shí)際應(yīng)用時(shí)用全局變量 ,傳入?yún)?shù)不可用ref out關(guān)鍵字 HttpClientHandler handler1 = new HttpClientHandler(); handler1.AllowAutoRedirect = false; HttpClient httpClient1 = new HttpClient(handler1); httpClient1.DefaultRequestHeaders.Add("user-agent", UserAgent); if (InternetGetConnectedState(0, 0) == false) { //未聯(lián)網(wǎng) servertime = "0"; return ; } try { HttpResponseMessage result = await httpClient1.GetAsync("https://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp"); if (result.IsSuccessStatusCode) { result.EnsureSuccessStatusCode(); string responseBodyAsText = await result.Content.ReadAsStringAsync(); JObject sertime = JObject.Parse(responseBodyAsText); servertime=sertime["data"]["t"].ToString(); } else { servertime= "0"; } } catch (HttpRequestException hre) { servertime = "0"; ; } handler1.Dispose(); httpClient1.Dispose(); }
有返回值函數(shù)
private string getservertime() { HttpClientHandler handler1 = new HttpClientHandler(); handler1.AllowAutoRedirect = false; HttpClient httpClient1 = new HttpClient(handler1); httpClient1.DefaultRequestHeaders.Add("user-agent", UserAgent); if (InternetGetConnectedState(0, 0) == false) { //未聯(lián)網(wǎng) return "0"; } try { var task = httpClient1.GetAsync("https://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp"); task.Wait(); if (task.Result.IsSuccessStatusCode) task.Result.EnsureSuccessStatusCode(); else { return "0"; } HttpResponseMessage response = task.Result; // txtStatusCode.Text = response.StatusCode + " " + response.ReasonPhrase + Environment.NewLine; var result = response.Content.ReadAsStringAsync(); string responseBodyAsText = result.Result; JObject sertime = JObject.Parse(responseBodyAsText); handler1.Dispose(); httpClient1.Dispose(); return (sertime["data"]["t"].ToString()); } catch (HttpRequestException hre) { hre.ToString(); } handler1.Dispose(); httpClient1.Dispose(); return "0"; }
C# HttpClient對(duì)接接口
最近在寫對(duì)接DHL接口的項(xiàng)目,大致了解了一些對(duì)接接口的請(qǐng)求方法。
POST帶參數(shù),賬號(hào)認(rèn)證請(qǐng)求
HttpClient client = new HttpClient(); //添加用戶身份認(rèn)證 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{"賬號(hào)"}:{"密碼"}"))); HttpContent httpContent = new StringContent(stringBuilder.ToString(), Encoding.UTF8); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); Uri url = new Uri("請(qǐng)求鏈接"); //httpContent為請(qǐng)求攜帶的Json數(shù)據(jù) var msg = client.PostAsync(url, httpContent).Result.Content.ReadAsStringAsync().Result;
Get帶賬號(hào)認(rèn)證請(qǐng)求
HttpClient client = new HttpClient(); //添加用戶身份認(rèn)證 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{"賬號(hào)"}:{"密碼"}"))); Uri url = new Uri("請(qǐng)求鏈接"); var msg = client.GetAsync(url).Result.Content.ReadAsStringAsync().Result;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#?將數(shù)據(jù)庫(kù)SqlServer數(shù)據(jù)綁定到類中的過(guò)程詳解
本文講述的是讀取數(shù)據(jù)庫(kù)中數(shù)據(jù)的常用做法,即將數(shù)據(jù)庫(kù)中的數(shù)據(jù)綁定到創(chuàng)建的類中,再將類綁定到DataGridView的數(shù)據(jù)源中的做法,對(duì)C#將SqlServer數(shù)據(jù)綁定到類中感興趣的朋友一起看看吧2022-06-06C#利用Task實(shí)現(xiàn)任務(wù)超時(shí)多任務(wù)一起執(zhí)行的方法
這篇文章主要給大家介紹了關(guān)于C#利用Task實(shí)現(xiàn)任務(wù)超時(shí),多任務(wù)一起執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來(lái)一起看看吧。2017-12-12WPF?Trigger改變屬性無(wú)效問(wèn)題排查示例詳解
這篇文章主要為大家介紹了WPF?Trigger改變屬性無(wú)效問(wèn)題排查示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10基于C#編寫一個(gè)遠(yuǎn)程桌面應(yīng)用
封閉環(huán)境無(wú)法拷貝外來(lái)的遠(yuǎn)程桌面軟件,所以這篇文章小編就來(lái)帶大家用C#編寫一個(gè)簡(jiǎn)單的遠(yuǎn)程桌面應(yīng)用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10Unity多語(yǔ)言轉(zhuǎn)換工具的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Unity多語(yǔ)言轉(zhuǎn)換工具的實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-0610分鐘學(xué)會(huì)Visual Studio將自己創(chuàng)建的類庫(kù)打包到NuGet進(jìn)行引用(net,net core,C#)
這篇文章主要介紹了10分鐘學(xué)會(huì)Visual Studio將自己創(chuàng)建的類庫(kù)打包到NuGet進(jìn)行引用(net,net core,C#),本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09