gpt4 book ai didi

c# - 如何关闭从方法调用返回的 HttpWebResponse

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:21 25 4
gpt4 key购买 nike

我有一个帮助程序类,它有一个方法,该方法设置为获取信息以生成 HttpWebRequest。目前的方法返回一个 HttpWebResponse

HttpWebResponse httpResponse;
//make request here
httpResponse = (HttpWebResponse)httpReq.GetResponse();
return httpResponse;

现在这会导致问题,因为连接永远不会关闭。在被调用者中使用 using 语句或 close 将在对象返回之前将其销毁。正确的做法应该是这样的。

using (httpResp = (HttpWebResponse)httpReq.GetResponse())
{
return GetDataFromResponse(httpResp);
}

但不幸的是,有许多对 helper 类的调用期望返回响应对象,然后以调用者自己的方式序列化数据。

我尝试在调用助手时这样做。

using(HttpWebResponse httpResponseRecieved = WebHelper.MakeRequest(parameters))

但这似乎并没有关闭响应。 httpResponseRecieved 是与返回的对象不同的对象吗?是否有更好的解决方案,或者我是否必须重写该方法及其所有调用方?

最佳答案

正如@JohnSaunders 所指出的,包裹调用者的最后一个 using 是关闭响应。

这样做 using(HttpWebResponse httpResponseRecieved = WebHelper.MakeRequest(parameters)) 毕竟可以工作。

关于c# - 如何关闭从方法调用返回的 HttpWebResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com