我正在尝试使用REST API通过JSON文件创建JIRA缺陷。原因是创建大规模的缺陷,而不是通过JIRA UI逐个创建。
以下是代码。
public class JiraBug {
@SuppressWarnings({ "unchecked", "rawtypes", "resource", "deprecation" })
public static String makeRequest(String path, JSONObject holder)
throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpost = new HttpPost(path);
StringEntity se = new StringEntity(holder.toString());
httpost.setEntity(se);
httpost.setHeader("Accept", "application/json");
httpost.setHeader("Content-type", "application/json");
ResponseHandler responseHandler = new BasicResponseHandler();
String response = httpclient.execute(httpost, responseHandler);
return response;
}
public static void main(String[] args){
try {
JSONObject jsonobj = new JSONObject();
File jsonFile = new File("JiraBug.json");
if (jsonFile.exists()){
InputStream is = new FileInputStream("JiraBug.json");
String jsonTxt = IOUtils.toString(is, "UTF-8");
jsonobj = new JSONObject(jsonTxt);
}
makeRequest("https://*<<Our_Company_JIRA_Server>>*/rest/api/2/issue",jsonobj);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下是JSON对象。
{
"fields": {
"project":
{
"key": "TRAINING"
},
"summary": "Test Summary",
"description": "Test Description",
"issuetype": {
"name": "Bug"
},
"priority": {
"id":"2"
}
} }
我收到了错误的请求异常。
org.apache.http.client.HttpResponseException: Bad Request
at org.apache.http.impl.client.AbstractResponseHandler.handleResponse(AbstractResponseHandler.java:69)
at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:65)
at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:51)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:222)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139)
at Jira.Auto_Defect.JiraBug.makeRequest(JiraBug.java:58)
at Jira.Auto_Defect.JiraBug.main(JiraBug.java:70)
这里有什么我想念的吗?
答案 0 :(得分:1)
您可以很好地使用DefaultHttpClient
Spring
来实现相同目标,而不是使用RestTemplate
:
你可以从我提供工作代码的类似问题中找到我的答案。
Java Program to fetch custom/default fields of issues in JIRA
希望这能很好地回答你的问题!