2013-02-27 39 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