gpt4 book ai didi

java - 通过套接字手动发送 HTTP 请求

转载 作者:IT老高 更新时间:2023-10-28 20:36:17 27 4
gpt4 key购买 nike

当我通过套接字发送正常的 HTTP 请求时,服务器没有以 OK 响应进行响应。我从 Firefox 复制了 HTTP header 。代码如下:

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();

但是,这是我收到的回复:

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>

我知道使用URL.openStream()可以做到这一点,但是为什么我手动发送HTTP请求时服务器无法识别?

最佳答案

两件事:

  1. 您应该使用 println 而不是 print 将您的条目打印到单独的行中。
  2. HTTP 请求应以空行结束 (link)。所以添加 pw.println("");

关于java - 通过套接字手动发送 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com