因此,我尝试使用 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"