HTTP 요청을 보내고 C# 소켓을 통해 서버에서 응답을 보내려고합니다.이 언어는 새로운 것입니다.C# 소켓을 통한 HTTP
나는 다음 코드 (IP가 올바르게 해결) 쓴 것 : 내가 잘못 뭐하는 거지
IPEndPoint RHost = new IPEndPoint(IP, Port);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(RHost);
String HTTPRequestHeaders_String = "GET ?q=fdgdfg HTTP/1.0
Host: google.com
Keep-Alive: 300
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16
Referer: http://google.com/";
MessageBox.Show(HTTPRequestHeaders_String, "Request");
byte[] HTTPRequestHeaders = System.Text.Encoding.ASCII.GetBytes(HTTPRequestHeaders_String);
socket.Send(HTTPRequestHeaders, SocketFlags.None);
String Response = "";
byte[] buffer = new byte[(int) socket.ReceiveBufferSize];
int bytes;
do
{
// On this lane program stops to react
bytes = socket.Receive(buffer);
// This line cannot be reached, tested with breakpoint
Response += Encoding.ASCII.GetString(buffer, 0, bytes);
}
while (bytes >= 0);
MessageBox.Show(Response, "Response");
? 난 그냥 페이지의 전체 HTML을로드하거나 응답에서 적어도 몇 문자가 필요합니다 (난 can not do this).
사용'HttpWebRequest' 클래스를. – SLaks
@SLaks 'WebClient' ... –
문자열로 HTTP 요청 헤더를 생성해야합니다.이 클래스에서 가능합니까? –