2013-02-27 4 views
0

II는 웹 사이트에 http 포스트 데이터를 보내 프록시 프록시를 던지고 서버 응답을 수신해야합니다. 예를 들어, 나는 포스트 데이터가 아니라 발송에 실패하면 내가 확인 내 사이트에서 요청을프록시를 사용하여 tcpClient를 사용하는 HTTP POST 요청

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

을 보내려고합니다. 이 경우 "Ok"를 반환합니다. 첫째,이 같은 것을 writte :

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 프로토콜을 사용하고 있기 때문에

감사

답변

0

, 당신은 지원이 WebProxy가 클래스 프록시를 설정하지 HttpWebRequest 클래스를 사용해야합니다.

+0

프록시 질문에 대해서는 확인해 보지 만 첫 번째 질문에 대해 어떻게 생각합니까? – user1845394

+0

HTTP 프로토콜을 다시 읽어야하지만 HttpWebRequest를 사용하고 메소드를 POST로 설정하면 첫 번째 코드 스 니펫이 필요하지 않습니다. 응답이 반환되지 않은 데에는 많은 이유가있을 수 있습니다. Fiddler를 권장하거나 HttpWebRequest를 사용하여 요청을 보낸 후에 HttpWebResponse를 얻고 다른 곳에서 문제가 있는지 확인하기 위해 상태 코드 헤더를 확인할 수 있습니다. POST와 프로토콜 버전 사이의 공간이 부족한 것 같지만 다시 스펙을 확인해야합니다. – Justin