JIRA Rest API - 创建问题 - 错误的请求响应

时间:2018-02-23 18:02:56

标签: java json httpresponse jira-rest-api bad-request

我正在尝试使用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)

这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

您可以很好地使用DefaultHttpClient Spring来实现相同目标,而不是使用RestTemplate

你可以从我提供工作代码的类似问题中找到我的答案。

Java Program to fetch custom/default fields of issues in JIRA

希望这能很好地回答你的问题!