【发布时间】:2020-11-07 10:25:25
【问题描述】:
我正在寻找一种在请求以状态 400 结束时接收响应正文的方法。 我现在正在使用 java.net 进行 http 连接。
这是我正在使用的代码:
InputStream response = new URL("http://localhost:8888/login?token=token").openStream();
try (Scanner scanner = new Scanner(response)) {
String responseBody = scanner.useDelimiter("\\A").next();
System.out.println(responseBody);
}
现在,我遇到了这个错误
java.io.IOException:服务器返回 HTTP 响应代码:URL 为 400
当我在浏览器中打开 url 时,它会显示一个 json 文件,表示出了什么问题,但现在,我无法在 java 中收到该响应。
【问题讨论】:
-
“当我在浏览器中打开 url 时,它会显示一个 json 文件,表示出了什么问题,但现在,我无法在 java 中收到该响应。”是什么意思?您是否能够在浏览器中看到此给定 URL 的响应而无法进入您的 java 代码?
-
@AmitVyas 是的,我在浏览器中也收到了代码 400,但这并不能阻止我收到响应。另一方面,在 java 中,它引发了一个异常,我无法得到响应。
-
您不需要使用 HttpUrlConenction。示例: URL url = new URL("localhost:8888/login?token=token"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setDoOutput(true); con.setRequestProperty("Content-Type ", "应用程序/json"); System.out.println(con.getResponseCode()); System.out.println(con.getResponseMessage());
-
比赛条件我们同时达到了相同的答案:)
标签: java http httpurlconnection