2013-02-27 61 views
0

II必須發送http post數據到網站拋出代理並接收服務器響應。 例如,我想發送請求使用tcpClient使用代理的Http Post請求

request=Encoding.ASCII.GetBytes("POST/HTTP/1.1\r\nHost: example.com\r\nConnection: Close\r\n\r\ntest_check=Hello"); 

在我的地盤,我檢查後的數據以及sended。在這種情況下,我返回「OK」。 首先,我寫了這樣的:

TcpClient client = new TcpClient(host, port); 
NetworkStream stream = client.GetStream(); 
stream.Write(request, 0, request.Length); 
stream.Flush(); 
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0) 
      response.Append(encoder.GetString(buffer, 0, count)); 

響應爲空。什麼不對?

後將工作,我想通過TcpClient的傳送代理服務器的請求。可能嗎?

感謝

回答

0

由於您使用HTTP協議,你應該使用HttpWebRequest類不支持設置與WebProxy類的代理。

+0

好的代理問題,但你對第一個問題有什麼看法? – user1845394 2013-02-28 12:24:49

+0

我將不得不重新閱讀HTTP協議,但如果使用HttpWebRequest並將Method設置爲POST,則甚至不需要您的第一個代碼片段。可能有很多原因爲什麼沒有返回響應。我會推薦Fiddler,或者在發送帶有HttpWebRequest的請求後,您將獲得HttpWebResponse,並且您可以檢查狀態代碼的標題以查看您是否在其他地方遇到問題。 POST和協議版本之間的空間似乎錯過,但同樣,我會檢查規範。 – Justin 2013-02-28 12:39:29