You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Socket向服务器发送HEAD请求时出现Bad Request错误求助

用Java Socket实现HEAD请求的尝试

我最近在尝试通过Socket建立连接,发送HEAD请求并获取服务器响应,参考了Stack Overflow和谷歌上的大量示例代码,写出了如下代码(目前还未完成):

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;

public class ClientTCPSocket {
    public static final int PORT = 80;

    public static void main(String argv[]) {
        BufferedReader inputK... // 代码片段未完整粘贴
    }
}

完成这个功能的几个关键提示:

  • 发送的HEAD请求必须严格遵循HTTP协议规范,一个标准的HEAD请求示例如下:
    HEAD / HTTP/1.1
    Host: your-target-domain.com
    Connection: close
    
    
    注意请求头末尾必须有两个连续的换行(即\r\n\r\n),这是HTTP请求结束的标志
  • 发送请求时要使用DataOutputStream的writeBytes()方法把请求内容发送出去,之后记得调用flush()确保数据全部发送
  • 读取响应时,用BufferedReader逐行读取服务器返回的内容,直到流结束
  • 务必做好异常处理,比如捕获IOException来处理连接失败、超时等情况
  • 所有IO资源(Socket、流对象)使用完毕后要关闭,最好用try-with-resources语法自动管理资源,避免泄漏

内容的提问来源于stack exchange,提问作者Shudy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:47:36