C# 使用tcpClient和代理的Http Post请求

C# 使用tcpClient和代理的Http Post请求,c#,post,proxy,tcpclient,C#,Post,Proxy,Tcpclient,我必须向网站发送http post数据,抛出代理并接收服务器响应。 例如,我想发送请求 request=Encoding.ASCII.GetBytes("POST / HTTP/1.1\r\nHost: example.com\r\nConnection: Close\r\n\r\ntest_check=Hello"); 在我的站点中,我检查post数据是否发送良好。在这种情况下,我返回“Ok”。 首先,我写了这样的东西: TcpClient client = new TcpClient(ho

我必须向网站发送http post数据,抛出代理并接收服务器响应。 例如,我想发送请求

request=Encoding.ASCII.GetBytes("POST / HTTP/1.1\r\nHost: example.com\r\nConnection: Close\r\n\r\ntest_check=Hello");
在我的站点中,我检查post数据是否发送良好。在这种情况下,我返回“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发送请求。可能吗


谢谢

因为您使用的是HTTP协议,所以应该使用HttpWebRequest类,它支持使用WebProxy类设置代理。

代理问题可以,但是第一个问题您认为如何?我必须重新阅读HTTP协议,但是,如果使用HttpWebRequest并将方法设置为POST,则甚至不需要第一个代码段。没有回复的原因可能有很多。我建议使用Fiddler,或者在发送带有HttpWebRequest的请求后,您将获得HttpWebResponse,您可以检查状态代码的标题,以查看您在其他地方是否有问题。POST和协议版本之间的空间似乎有点遗漏,但我必须再次检查规范。