我正在創建一個NuGet包來從聯機API檢索圖像。我使用.NetStandard 1.4並使用System.Net.Http版本4.3.2。每次我調用Login方法獲取令牌以訪問api時,http調用都不會返回,只是掛起,直到由於超時而發生任務取消異常。我嘗試了多種在線方式,例如確保在異步調用之前沒有.Result或.Wait(),並且在我的測試中沒有任何解決方案。我也嘗試使用不正確的網址,並且調用仍然掛起,並且不會返回說URL不存在。.NetStandard Http SendAsync永不返回
我在下面發佈了主要的http調用。任何幫助,爲什麼這是懸掛將非常感激。
HttpRequestMessage requestMessage = new HttpRequestMessage();
requestMessage.RequestUri = new Uri($"{BaseUrl}/login");
requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(HttpContentType.JSON));
requestMessage.Method = HttpMethod.Post;
requestMessage.Content = new StringContent(JsonConvert.SerializeObject(values), Encoding.UTF8, HttpContentType.JSON);
using (HttpClient httpClient = new HttpClient())
{
using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage))
{
if (response.IsSuccessStatusCode == true)
{
// Do work
}
}
}
BaseUrl值和網站的路徑是正確的,我已經檢查過。此外,我還使用了郵遞員發送的相同鏈接和所有信息,以驗證我使用的是正確的信息。
我試圖使用MSTest,一個控制檯項目和一個WPF項目使用按鈕並點擊事件來測試這個方法。每個方法都會掛起,永遠不會通過
using (HttpResponseMessage ...
你檢查了這些 - https://stackoverflow.com/questions/19704432/await-httpclient-sendasynchttpcontent-is-non-responsive,https://stackoverflow.com/questions/12933090/async-await-with- configureawaits-continueoncapturedcontext-parameter-and-synchr –
是的,我已經找到了這兩個職位,並試圖解決沒有運氣... – CraftyCoder
你可以擊中'http:// example.com'?如果不是,那麼問題可能不在'HttpClient'中。可能是服務器沒有響應。 –