私はのJira URL(https://xxxxxxx.atlassian.net/rest/api/2/issue/
)にHTTP Post
を行うには、このコードを持っている:私はHTTPをJSONメッセージなしで取得します使用している場合は、それが正常に動作のJava - HTTPポストのJIRA API - 不正な要求
Object jsonMessage = arg0.getMessage().getPayload();
URL url = new URL(jiraUrl + jiraIssuePath);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
BASE64Encoder enc = new sun.misc.BASE64Encoder();
String userpassword = jiraUsername + ":" + jiraPassword;
String encodedAuthorization = enc.encode(userpassword.getBytes());
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("Authorization", "Basic " + encodedAuthorization);
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestMethod("POST");
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(jsonMessage.toString());
wr.flush();
StringBuilder sb = new StringBuilder();
int HttpResult = conn.getResponseCode();
if (HttpResult == HttpsURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println("" + sb.toString());
} else {
System.out.println(conn.getResponseMessage());
}
を、
java.io.IOException: Server returned HTTP response code: 400 for URL: https://xxxxxxx.atlassian.net/rest/api/2/issue/
は、私は、ヘッダー(Content-Type
とAuthorization
)を確認するためにポストマンのApp使用し、ボディとと:私はJSONメッセージを送るPOSTを使用している場合、それは私にこのエラーを返しますそのアプリはJiraで問題を作成します。
を追加しました:私は接続を検査した場合 それはGET
代わりのPOST
のようなパラメータMethod
を持っています。
どうしたらいいですか?
おそらく残りのAPIはgetでのみアクセスできますか? – Jens
いいえ、私がPostman AppでPOSTを行うと正常に動作します。 – gtx911
レスポンスのボディをチェックします。たぶんそれは問題の原因にいくつかの光をもたらすでしょう。 – talex