6
我使用System.Net.Http.HttpClient
將一系列請求從控制檯應用程序發佈到REST API,並將JSON響應反序列化爲強類型對象。我的實現是這樣的:.NET HttpClient在幾個請求後掛起(除非Fiddler處於活動狀態)
using (var client = new HttpClient())
{
var content = new StringContent(data, Encoding.UTF8, "text/html");
var response = client.PostAsync(url, content).Result;
response.EnsureSuccessStatusCode();
return response.Content.ReadAsAsync<MyClass>().Result;
}
不過,我遇到非常相似,一個在this question,由此,當請求通過提琴手路由一切正常,說明一個問題,但它的第四或第五請求時後掛起提琴手被禁用。
如果問題的原因是相同的,我想我需要做更多的事情HttpClient
讓它在每次請求後完全釋放資源,但我找不到任何代碼示例顯示如何執行此操作。
希望有人能指出我正確的方向。
非常感謝,
添
謝謝安德魯 - 這是一個生命的救星。事實上,在使用HttpWebRequest之前,我看到過這個問題,並且解決方案是相同的,但是如何使用HttpClient代碼模式來做到這一點並不明顯。再次感謝。 –
這裏還有別的東西在發生。這裏唯一的流是傳遞給分配給響應消息的Content屬性的StreamContent對象的NetworkStream。當像這樣使用HttpClient時,響應主體會自動緩衝,任何不可搜索的流在緩衝時會自動處理。沒有必要使用HttpCompletionOption.ResponseContentRead處理由HttpClient檢索的HttpResponseMessage。 –