0

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

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

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

4

1 回答 1

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");
于 2012-10-18T18:29:33.597 回答