java - 为什么使用 POST 方法的 Java HttpURLConnections 会导致返回 Http 500 错误?

标签 java http rest drools httpurlconnection

我正在编写一个应用程序,它将使用其 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/

相关文章:

java - 使用 Java Streams 计算并打印一条链中的唯一列表项

java - 如何测试两个电子邮件地址是否相等

ios - 如何在 Swift 的其他类上为 HTTP 请求创建函数?

javascript - 带有自定义 header 的 CORS GET : is it possible to get rid of OPTIONS

java - hibernate 查询在堆转储中的作用

java - 不活动 transaciotn : javax. persistence.TransactionRequiredException:执行更新/删除查询

HTTP 服务器随机关闭崩溃

java - POST 请求期间出现错误 400(错误请求)

rest - 将参数传递给 GET 请求

iphone - SOAP 和 REST 如何处理 XML/JSON 响应?