2012-02-28 83 views
4

我通過這種方式發送POST請求:發送POST HttpWebRequest和不需要接收響應

HttpWebResponse res = null; 
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); 
req.Method = "POST"; 
req.CookieContainer = cookieContainer; 
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"; 
req.ContentType = "application/x-www-form-urlencoded"; 
ASCIIEncoding encoding = new ASCIIEncoding(); 
byte[] loginDataBytes = encoding.GetBytes(requestCommand); 
req.ContentLength = loginDataBytes.Length; 
Stream stream = req.GetRequestStream(); 
stream.Write(loginDataBytes, 0, loginDataBytes.Length); 
stream.Close(); 
//line below is my way to send request, but it return a response. 
res = (HttpWebResponse)req.GetResponse(); 

我只是想發送請求,網絡服務器和我不希望收到效應初探。浪費時間和帶寬。無論如何要這樣做?

非常感謝!

+2

註釋行res =(HttpWebResponse)req.GetResponse(); – dankyy1 2012-02-28 07:29:58

+0

你總是可以創建一個隊列(例如在一個文件中更快),並將該文件彙集到一次一次的變化中,並在其他線程中處理它... – balexandre 2012-02-28 07:40:34

+1

@ dankyy1沒有該行,數據將會永遠不會被髮送... – balexandre 2012-02-28 07:41:32

回答

2

不,沒有辦法。 HTTP協議是兩種方式。這是一個請求/響應協議。如果您想發送先前準備的請求,則需要調用GetResponse方法。

+0

是否有限制響應包大小或限制響應內容長度?感謝您的回覆 – Tiang 2012-02-28 07:42:06

+0

是的,如果發送了某個請求參數,您可以修改服務器端腳本以返回更少的數據。 – 2012-02-28 07:43:25

+0

是否有任何方法可以進行異步請求,而不會讀取響應流? – Delta 2012-02-28 07:57:31

相關問題