. net HttpClient在几个请求后挂起(除非Fiddler处于活动状态)



我使用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;
}

然而,我遇到的问题非常类似于在这个问题中描述的一个,其中一切工作正常,当请求通过Fiddler路由,但它挂在第4或第5个请求后,当Fiddler被禁用。

如果问题的原因是相同的,我假设我需要对HttpClient做更多的事情,以使它在每个请求后完全释放其资源,但我无法找到任何显示如何做到这一点的代码示例。

希望有人能给我指个方向。

许多谢谢,

蒂姆

您没有处理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;
    }
}

相关内容

  • 没有找到相关文章

最新更新