获取网站请求会返回错误

时间:2012-10-18 18:23:00

标签: java sockets get-request

我试图向网站发送获取请求但总是返回错误400错误请求。我想知道我的请求是否错误。这是;

socketOut.println("GET " + req.url + " HTTP/1.1\r\n");
socketOut.flush();

我可以通过使用URLConnection来实现它,但作为第二种方式我使用socket。所以我发送这个请求并读取字节。我检查了它从网站返回给我的内容,当然它返回错误的请求错误页面。有什么建议吗?顺便说一句,req.url返回的网址不像/asd.html,但这个www.stackoverflow.com/asd.html

1 个答案:

答案 0 :(得分:1)

println可能会使用\n作为新行,而不是可能需要的\r\n。请尝试直接使用\r\n

HTTP 1.1需要Host标头。尝试:

socketOut.print("GET " + req.url + " HTTP/1.0\r\n\r\n");

或:

socketOut.print("GET " + req.url + " HTTP/1.1\r\n");
socketOut.print("Host: " + req.host + "\r\n");
socketOut.print("\r\n");