.NET HttpClient在多次请求后挂起(除非Fiddler处于活动状态)

Tim*_*ter 7 httpwebrequest dotnet-httpclient

System.Net.Http.HttpClient用来将一系列请求从控制台应用程序发布到REST API,并将JSON响应反序列化为强类型对象.我的实现是这样的:

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;
}
Run Code Online (Sandbox Code Playgroud)

但是,我遇到的问题与此问题中描述的问题非常相似,当请求通过Fiddler路由时,一切正常,但是当Fiddler被禁用时,它会在第4或第5个请求后挂起.

如果问题的原因是相同的,我假设我需要做更多的HttpClient事情以使其在每次请求后完全释放其资源,但我无法找到任何代码示例来说明如何执行此操作.

希望有人能指出我正确的方向.

非常感谢,

蒂姆

And*_*ott 9

你没有丢弃这个HttpResponseMessage物体.这可以在服务器上留下开放流,并且在填充了具有单个服务器的一些流配额之后,将不再发送请求.

using (var client = new HttpClient())
{
    var content = new StringContent(data, Encoding.UTF8, "text/html");
    using(var response = client.PostAsync(url, content).Result)
    {    
        response.EnsureSuccessStatusCode();
        return response.Content.ReadAsAsync<MyClass>().Result;
    }
}
Run Code Online (Sandbox Code Playgroud)