我正在编写一个应用程序,它将使用其REST API来迁移JBoss Guvnor软件包。基本上它通过REST GET请求读取所有资产,并使用PUT/POST请求将它们写入另一个Guvnor。为什么使用POST方法的Java HttpURLConnections会导致Http 500错误返回?
这里是我的方法的一个小片段,的确文章:每次
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();
它的工作原理,所有的资产被迁移,但conn.getResponseCode()
回报500 conn.getResponseMessage()
返回内部服务器错误。
我对使用java处理HTTP请求相当陌生,我不知道是否会发生这种情况,为什么会发生这种情况,以及它是由于我的代码段中的某个错误还是服务器端(Guvnors )错误?
我觉得在你已经调用'conn.getOutputStream()'后,你不需要调用'conn.connect()'。何时何地测试响应代码和响应消息?我在你的问题中看不到一个例子。 – 2011-12-20 13:13:25
响应代码/消息后被调用,但这并不重要,即使没有这些,并与wireshark听我看到HTTP 500 – r3mbol 2011-12-20 13:21:13