【问题标题】:get request to a website returns error获取对网站的请求返回错误
【发布时间】:2012-10-09 07:09:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: java sockets get-request


    【解决方案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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-10
      • 2018-04-19
      • 2019-03-27
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      相关资源
      最近更新 更多