使用Httpclient()發送POST 請求以獲得Token,部分程式如下:
public async Task<string> GetAccessTokenAsync()
{
if (SubscriptionKey == string.Empty) return string.Empty;
// Re-use the cached token if there is one.
if ((DateTime.Now - storedTokenTime) < TokenCacheDuration)
{
return storedTokenValue;
}
using (var client = new HttpClient())
using (var request = new HttpRequestMessage())
{
request.Method = HttpMethod.Post;
request.RequestUri = ServiceUrl;
request.Content = new StringContent(string.Empty);
request.Headers.TryAddWithoutValidation(OcpApimSubscriptionKeyHeader, this.SubscriptionKey);
client.Timeout = TimeSpan.FromSeconds(2);
var response = await client.SendAsync(request);
this.RequestStatusCode = response.StatusCode;
response.EnsureSuccessStatusCode();
var token = await response.Content.ReadAsStringAsync();
storedTokenTime = DateTime.Now;
storedTokenValue = "Bearer " + token;
return storedTokenValue;
}
}
在除錯程序中,發現程式運行到
var response = await client.SendAsync(request);時,就不能往下繼續運行,程序中既沒有錯誤也沒有其他訊息顯示。
本人菜鳥,已經被這個問題弄得焦頭爛額了兩周了,盼請大牛指教。
uj5u.com熱心網友回復:
await 后面的代碼也是要等SendAsync成功了才會執行啊uj5u.com熱心網友回復:
那么就是一直不成功?那么請問怎么查看問題出在哪里?大概可能的問題是什么?
uj5u.com熱心網友回復:
樓主解決了嗎?我也遇到了同樣的問題。uj5u.com熱心網友回復:
try catchuj5u.com熱心網友回復:
try catch 沒用 直接閃退 沒有任何exception
uj5u.com熱心網友回復:
怎么直接閃退 不明白
uj5u.com熱心網友回復:
請問一下,解決了沒?我的請求也是到了await然后執行緒就被阻塞了uj5u.com熱心網友回復:
我一直不太清楚 異步的http的意義...你獲取token 最終也是要再一次去請求其他介面.
在呼叫的人來說. 也是等待. 感覺沒什么用啊...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/31268.html
標籤:C#
上一篇:誰用過socketio4net,誰知道在連接服務器的時候怎么加引數?
下一篇:chart圖表X軸顯示資料庫時間
