java HttpURLConnection抛出一个响应代码:400用于大型请求的URL
我正在尝试使用HttpUrlConnection通过URLConnection发送请求,HttpUrlConnection正在工作,但在使用connection.getInputStream返回响应时抛出响应代码:400。我正在编写的web服务正在发送大型JSON响应。事实上,当我尝试小的请求,因此小的响应程序工作良好。这是一个反应太大的问题java HttpURLConnection抛出一个响应代码:400用于大型请求的URL,java,json,httpurlconnection,http-status-code-400,Java,Json,Httpurlconnection,Http Status Code 400,我正在尝试使用HttpUrlConnection通过URLConnection发送请求,HttpUrlConnection正在工作,但在使用connection.getInputStream返回响应时抛出响应代码:400。我正在编写的web服务正在发送大型JSON响应。事实上,当我尝试小的请求,因此小的响应程序工作良好。这是一个反应太大的问题 URL obj = new URL(url); HttpURLConnection connection = (HttpURLConnect
URL obj = new URL(url);
HttpURLConnection connection = (HttpURLConnection) obj.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
connection.connect();
ObjectMapper mapper = new ObjectMapper();
//building the json request.. tested and works fine
String json = mapper.writeValueAsString(requestParameters);
DataOutputStream os = new DataOutputStream(connection.getOutputStream());
os.writeBytes(json);
os.flush();
os.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); //Program throws exception here for large response
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
connection.disconnect();
如何改进代码,使其能够从web服务读取大量响应?您的代码很好。
如果服务器返回400,这意味着它无法处理大型请求,因此主修复必须在服务器代码中完成
如果您想制作一个较短的json,我们可以帮助您向我们展示requestParameters,也许我们可以找到一种方法将json拆分为较短的请求
查看e.stackPrintTrace或connection.getErrorStream也会很有用。这个答案帮助了我,谢谢。这是服务器端的问题。您确定这是因为响应太大吗?我在谷歌上搜索了400个响应代码,这是一个错误的请求。所以我猜你的大请求可能有一些语法错误,这不是一个有效的json,您可以输出它并测试它是否是一个有效的json。看到这个,我将尝试在connection.getInputStream上引发异常,而不是在我请求server@ChaojunZhong我刚刚验证了json,它是有效的。我的要求没有问题。