我试图向网站发送获取请求但总是返回错误400错误请求。我想知道我的请求是否错误。这是;
socketOut.println("GET " + req.url + " HTTP/1.1\r\n");
socketOut.flush();
我可以通过使用URLConnection来实现它,但作为第二种方式我使用socket。所以我发送这个请求并读取字节。我检查了它从网站返回给我的内容,当然它返回错误的请求错误页面。有什么建议吗?顺便说一句,req.url返回的网址不像/asd.html,但这个www.stackoverflow.com/asd.html
答案 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");