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

JIRA Rest API - Create Issue - Bad request response

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

这里有什么我遗漏的吗?

您可以使用 SpringRestTemplate 而不是使用 DefaultHttpClient 来达到同样的效果:

您可以参考我在类似问题中的回答,我提供了工作代码。

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