そのため、Java を使用して REST API を介して Jira の問題に関する情報を取得しようとしていますが、400 エラーが発生し続けます。私が見逃している本当にばかげた何かがあるように感じます。誰かがこれの何が問題なのかを見つけるのを手伝ってくれますか? 編集: Java プログラムでユーザー名/パスワードを Jira に送信していないことに気付きましたが、実際にはその方法がわかりません... ここで助けてください! ここに私が持っているコードがあります(会社名が編集されています):
import java.io.*;
import java.net.*;
import java.util.*;
public class JiraConnector
{
public static void main(String[] args)
{
try {
//store necessary query information
URL jiraURL = new URL("http://jira.somecompany.com/rest/api/2/search");
String data = "'{\"jql\":\"project = PROJ\"}'";
//establish connection and request properties
HttpURLConnection connection = (HttpURLConnection)jiraURL.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "*/*");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.connect();
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write(data.toString());
wr.flush();
wr.close();
Reader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
for (int c; (c = in.read()) >= 0; System.out.print((char)c));
} catch (MalformedURLException e) {
System.err.println("MalformedURLException: " + e.getMessage());
} catch (java.net.UnknownServiceException e) {
System.err.println("UnknownServiceException: " + e.getMessage());
} catch (IOException e) {
System.err.println("IOException: " + e.getMessage());
}
}
}
記録のために、このcurlコマンドを使用すると機能します:
curl -D- -u- user:password -X POST -H "Content-Type: application/json" --data '{"jql:"project=PROF"}' "http://jira.somecompany.com/rest/api/2/search"