2
我有一個輔助類,其中有一個方法設置爲接收信息以創建一個HttpWebRequest
。目前的方法返回HttpWebResponse
。如何關閉正在從方法調用返回的HttpWebResponse
HttpWebResponse httpResponse;
//make request here
httpResponse = (HttpWebResponse)httpReq.GetResponse();
return httpResponse;
現在因爲連接永遠不會被關閉,這是造成問題。在被調用者中使用using語句或close會在返回之前銷燬對象。正確的做法是這樣的。
using (httpResp = (HttpWebResponse)httpReq.GetResponse())
{
return GetDataFromResponse(httpResp);
}
但不幸的是有很多的呼叫成期待響應對象回來,然後在調用者自己的方式序列化數據的輔助類。
我試着對幫助者進行調用。
using(HttpWebResponse httpResponseRecieved = WebHelper.MakeRequest(parameters))
但這似乎並沒有收到迴應。 httpResponseRecieved
是否與返回的對象不同?有沒有更好的解決方案,還是必須重寫方法及其所有呼叫者?
你上次使用'應該關閉響應。是什麼讓你相信它並沒有關閉? –
@JohnSaunders我以前做過一些測試,並且出現錯誤,仍然使用最後的using語句持續存在。我現在正在重做這些測試,看起來正如你所說的那樣工作。 – Adam