作爲套件的集成測試,我寫的一部分,我想斷言,我的服務器能夠正常運行在客戶端的HTTP請求終止早期,所有的響應數據被髮送之前。終止網絡請求早(C#)
是否有可能創建一個HTTP請求,在C#中接收數據的只有幾個字節之後終止了嗎?
作爲套件的集成測試,我寫的一部分,我想斷言,我的服務器能夠正常運行在客戶端的HTTP請求終止早期,所有的響應數據被髮送之前。終止網絡請求早(C#)
是否有可能創建一個HTTP請求,在C#中接收數據的只有幾個字節之後終止了嗎?
我找到了適合我的解決方案。我只是在得到它後關閉響應。這似乎給我留下了響應標題,但在服務器完成發送之前關閉了連接。
var response = request.getResponse();
response.Close();
// Assert that server has dealt with closed response correctly
異步使用剛開始通話,說後臺工作,然後關閉線程/通道。
你不需要一個線程/ bgworker。如果你想異步執行,你可以使用WebRequest的BeginGetResponse和EndGetResponse方法:http://msdn.microsoft.com/en-us/library/86wf6409.aspx – Ravi 2009-08-24 13:27:02
你不必閱讀FO響應的所有字節出來。只要你想讀取儘可能多的字節,然後從你的測試中返回。
你可以這樣做或多或少是這樣的:
Stream myStream = resp.GetResponseStream();
myStream.Read(bufferArray, 0, 1); //read 1 byte into bufferArray
return;
您可能會發現在WebReponse有用的文檔。
是的,這對我來說工作得很好!雖然在我的情況下,我不關心任何具體的響應數據,所以只關閉流而不讀取任何數據。 – Karl 2009-08-24 13:44:20
@Karl,你是對的;確保你正確地選擇了響應。 – 2009-08-24 13:54:58
您的意思是「在所有*請求*數據發送之前」? – 2009-08-24 13:12:56
不,我希望成功發送請求,但是我想在所有響應數據已從服務器發回之前終止連接。成像在完成之前停止文件下載。 – Karl 2009-08-24 13:15:33