C#之HttpClient的同步使用方式
更新時間:2023年11月07日 14:38:02 作者:cnwjl
這篇文章主要介紹了C#之HttpClient的同步使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
C# HttpClient的同步使用
無返回值 函數(shù)
private async void getservertime()
{
string servertime = "0";//實際應(yīng)用時用全局變量 ,傳入?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對接接口
最近在寫對接DHL接口的項目,大致了解了一些對接接口的請求方法。
POST帶參數(shù),賬號認證請求
HttpClient client = new HttpClient();
//添加用戶身份認證
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{"賬號"}:{"密碼"}")));
HttpContent httpContent = new StringContent(stringBuilder.ToString(), Encoding.UTF8);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
Uri url = new Uri("請求鏈接");
//httpContent為請求攜帶的Json數(shù)據(jù)
var msg = client.PostAsync(url, httpContent).Result.Content.ReadAsStringAsync().Result;Get帶賬號認證請求
HttpClient client = new HttpClient();
//添加用戶身份認證
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{"賬號"}:{"密碼"}")));
Uri url = new Uri("請求鏈接");
var msg = client.GetAsync(url).Result.Content.ReadAsStringAsync().Result;總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#連接到sql server2008數(shù)據(jù)庫的實例代碼
這篇文章主要介紹了C#連接到sql server2008數(shù)據(jù)庫的實例代碼,需要的朋友可以參考下2017-09-09
WinForm窗體調(diào)用WCF服務(wù)窗體卡死問題
在Winform窗體中調(diào)用部署在其他服務(wù)器中的WCF服務(wù)時,由于調(diào)用服務(wù)需要一定時延,因此窗體在這段時間一直卡住不能進行其他操作2012-12-12
c#中SAPI使用總結(jié)——SpVoice的使用方法
最近使用C#重做了點名系統(tǒng)(要用到TTS,讓計算機點名)使用了SAPI,在這里總結(jié)一下SpVoice的使用方法。2011-10-10
C#常用數(shù)據(jù)結(jié)構(gòu)棧的詳細介紹
在C#中,Stack<T> 是一個后進先出(LIFO,Last-In-First-Out)集合類,位于System.Collections.Generic 命名空間中,本文詳細介紹C#常用數(shù)據(jù)結(jié)構(gòu)棧,感興趣的朋友跟隨小編一起看看吧2024-09-09

