我正在编写一个应用程序,它将使用其 REST API 迁移 JBoss Guvnor 包。基本上,它通过 REST GET 请求读取所有 Assets ,并使用 PUT/POST 请求将它们写入另一个 Guvnor。
这是我执行 POST 的方法的一小段:
HttpURLConnection conn = (HttpURLConnection) path.getURL()
.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-type", path.getType().getAcceptMIME());
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("Authorization", "Basic " + authString);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
conn.getOutputStream()));
bw.write(content);
bw.flush();
conn.connect();
它有效,所有 Assets 都在迁移,但每次 conn.getResponseCode()
返回 500 并且 conn.getResponseMessage()
返回内部服务器错误。
我对使用 java 处理 HTTP 请求相当陌生,我不知道这种情况是否应该发生,为什么会发生,以及是否是由于我的代码片段中的某些错误,或者是服务器端的错误(Guvnors)错误?
最佳答案
您的代码没有任何明显的错误。 500 响应意味着(应该意味着)服务器遇到了内部问题。您的请求中的某些异常情况可能会触发该问题,但也可能是完全不相关的情况。
我建议您执行以下操作:
检查服务器端日志中是否有与失败请求一致的错误/异常。
打开、读取并记录 HttpUrlConnection 的错误流。它很可能有更多信息性的错误消息。
关于java - 为什么使用 POST 方法的 Java HttpURLConnections 会导致返回 Http 500 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575931/