我正在尝试用C#编写一个“原始”的HTTP客户端。您可能会问为什么?
我的目标是在J2ME中实现一个HTTP客户端(只能进行有限的GET和POST请求),但首先我需要更好地了解HTTP协议(因此尝试使用C#)。
我的第一次尝试失败了:
var requestBytes = Encoding.UTF8.GetBytes(@"GET / HTTP/1.1
User-Agent: CSharp
Host: www.google.com
");
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("www.google.com", 80);
socket.Send(requestBytes);
var responseBytes = new byte[socket.ReceiveBufferSize];
socket.Receive(responseBytes);
Console.Out.Write(Encoding.UTF8.GetString(responseBytes));
套接字已打开,但在接收调用时被阻塞。几秒钟后,远程主机关闭了连接。
有什么想法吗?
当我尝试使用puTTY中的RAW模式连接时,同样会发生这种情况。