我在.NET中有这个代码:
Socket Connector = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
string IP = "198.41.208.139";
Connector.Connect(new IPEndPoint(IPAddress.Parse(IP), 80));
Connector.Send(Encoding.ASCII.GetBytes("GET / HTTP/1.1"));
byte[] Data = new byte[1024];
Connector.Receive(Data);
IP属于http://reddit.com/,但GET请求不会返回任何内容。 Receive方法无限期地阻止程序。我尝试使用网站http://imgur.com/和http://youtube.com/
时发生了同样的事情为什么会发生这种情况,我该如何解决?
答案 0 :(得分:1)
您希望根据RFC2616 HTTP 1.1将"\r\n\r\n"
附加到请求中。
对于HTTP 1.0+,你应该添加一个Host:
标题(1.1的mandory,推荐用于1.0):
Connector.Send(Encoding.ASCII.GetBytes("GET / HTTP/1.1\r\nHost: reddit.com\r\n\r\n"));