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

Java HttpServlet发送POST请求遇400 Bad Request问题求助

解决Java POST请求返回400 Bad Request的问题

针对你的代码,导致400错误的常见原因及修复方案如下:

1. 缺少Content-Type请求头

Postman发送JSON请求时会自动添加Content-Type: application/json头,但你的Java代码没有设置这个关键头,服务器无法正确识别请求体格式,从而返回400错误。

修复:

在配置连接时添加请求头:

proxyConnection.setRequestMethod(method);
proxyConnection.setDoInput(true);
proxyConnection.setDoOutput(true);
// 添加Content-Type头
proxyConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

2. 输出流未正确刷新/关闭

直接关闭输出流可能导致部分请求体数据未发送到服务器,建议使用try-with-resources自动管理流,确保数据完全写入并刷新:

修复:

JsonObject parent = new JsonObject();
parent.addProperty("client_id", "clientXXY");
parent.addProperty("client_secret", "jxx.2221122");
parent.addProperty("username", "API.PRODTEST");
parent.addProperty("password", "kkGGkkGGEEee1");

// 使用try-with-resources自动处理流
try (OutputStream os = proxyConnection.getOutputStream()) {
    byte[] requestBody = parent.toString().getBytes("UTF-8");
    os.write(requestBody);
    os.flush(); // 确保数据全部发送
}

3. 连接调用时机问题

proxyConnection.connect()不需要显式调用,当你获取响应信息(如getResponseMessage())时,Java会自动完成连接和请求发送。显式调用可能导致请求流程异常,建议移除该行代码。

完整修改后的代码示例

// CONFIGURE CONNECTION
proxyConnection.setRequestMethod(method);
proxyConnection.setDoInput(true);
proxyConnection.setDoOutput(true);
proxyConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

JsonObject parent = new JsonObject();
parent.addProperty("client_id", "clientXXY");
parent.addProperty("client_secret", "jxx.2221122");
parent.addProperty("username", "API.PRODTEST");
parent.addProperty("password", "kkGGkkGGEEee1");

// 写入请求体
try (OutputStream os = proxyConnection.getOutputStream()) {
    byte[] requestBody = parent.toString().getBytes("UTF-8");
    os.write(requestBody);
    os.flush();
}

// 获取响应(自动触发请求发送)
System.out.println("ret mess " + proxyConnection.getResponseMessage());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:01:26