2009-08-24 91 views
1

作爲套件的集成測試,我寫的一部分,我想斷言,我的服務器能夠正常運行在客戶端的HTTP請求終止早期,所有的響應數據被髮送之前。終止網絡請求早(C#)

是否有可能創建一個HTTP請求,在C#中接收數據的只有幾個字節之後終止了嗎?

+1

您的意思是「在所有*請求*數據發送之前」? – 2009-08-24 13:12:56

+0

不,我希望成功發送請求,但是我想在所有響應數據已從服務器發回之前終止連接。成像在完成之前停止文件下載。 – Karl 2009-08-24 13:15:33

回答

0

我找到了適合我的解決方案。我只是在得到它後關閉響應。這似乎給我留下了響應標題,但在服務器完成發送之前關閉了連接。

var response = request.getResponse(); 
response.Close(); 

// Assert that server has dealt with closed response correctly 
0

異步使用剛開始通話,說後臺工作,然後關閉線程/通道。

+0

你不需要一個線程/ bgworker。如果你想異步執行,你可以使用WebRequest的BeginGetResponse和EndGetResponse方法:http://msdn.microsoft.com/en-us/library/86wf6409.aspx – Ravi 2009-08-24 13:27:02

2

你不必閱讀FO響應的所有字節出來。只要你想讀取儘可能多的字節,然後從你的測試中返回。

你可以這樣做或多或少是這樣的:

Stream myStream = resp.GetResponseStream(); 
myStream.Read(bufferArray, 0, 1); //read 1 byte into bufferArray 
return; 

您可能會發現在WebReponse有用的文檔。

+0

是的,這對我來說工作得很好!雖然在我的情況下,我不關心任何具體的響應數據,所以只關閉流而不讀取任何數據。 – Karl 2009-08-24 13:44:20

+0

@Karl,你是對的;確保你正確地選擇了響應。 – 2009-08-24 13:54:58