Eng*_*uad 49 java sockets network-programming http http-headers
当我通过套接字发送正常的HTTP请求时,服务器不响应OK响应.我从FireFox复制了HTTP标头.这是代码:
Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.print("GET / HTTP/1.1");
pw.print("Host: stackoverflow.com");
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String t;
while((t = br.readLine()) != null) System.out.println(t);
br.close();
Run Code Online (Sandbox Code Playgroud)
但是,这是我收到的回复:
HTTP/1.0 408 Request Time-out
Cache-Control: no-cache
Connection: close
Content-Type: text/html
<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过使用URL.openStream(),但为什么服务器在我手动发送时不识别HTTP请求?
小智 8
真正有效的正确修复,它是跨平台的:
pw.print("GET / HTTP/1.1\r\n");
pw.print("Host: stackoverflow.com\r\n\r\n");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85145 次 |
| 最近记录: |