【发布时间】:2020-01-27 14:39:38
【问题描述】:
我正在尝试调用像这样记录的 rest API
curl -X POST "https://url/api/v1/className/doSomething" -H "accept: application/json" -H "Authorization: Bearer token" -H "Content-Type: application/json" -d
这是我的代码发送 http 帖子。它适用于我之前使用的所有 http api,但不适用于此。
String result = "";
RequestProcess process = LogManager.getInstance().newProcess();
process.setProcessName(url);
process.setRequestContent(requestContent);
ObjectMapper mapper = new ObjectMapper().registerModule(new Jdk8Module()).registerModule(new JavaTimeModule());
String rawData = mapper.writeValueAsString(requestContent);
String charset = "UTF-8";
HttpURLConnection connection = (HttpURLConnection)new URL(url).openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", "application/json;charset=" + charset);
connection.setRequestProperty("User-Agent", USER_AGENT);
connection.setRequestMethod("POST");
try (OutputStream output = connection.getOutputStream()) {
output.write(rawData.getBytes(charset));
}
InputStream inputStream = connection.getInputStream();
result = StreamUtil.toString(inputStream);
process.setResponseContent(result);
LogManager.getInstance().endProcess(process);
return result;
我收到一个错误
java.io.IOException:服务器返回 HTTP 响应代码:400 用于 URL:url
我尝试从邮递员那里做同样的事情并且它有效。有什么想法吗?
【问题讨论】:
-
看起来您的 url 变量未正确初始化。您没有正确使用 curl 请求。请求中没有发布数据。因此,通过 null 有效负载,预期的异常仅为 400
标签: java http bad-request