如何在java中的JIRA thorugh REST api中创建问题?
我正在用我的json数据向JIRA发送POST请求以创建一个项目,但是我无法在JIRA中创建一个项目,我试图看到来自Fiddler的错误,我得到了以下错误。我正在使用java 我正在发布来自以下代码的json数据,请指出我的错误所在?如何在java中的JIRA thorugh REST api中创建问题?,java,json,jira,apache-httpclient-4.x,jira-rest-java-api,Java,Json,Jira,Apache Httpclient 4.x,Jira Rest Java Api,我正在用我的json数据向JIRA发送POST请求以创建一个项目,但是我无法在JIRA中创建一个项目,我试图看到来自Fiddler的错误,我得到了以下错误。我正在使用java 我正在发布来自以下代码的json数据,请指出我的错误所在? public static void createTicket()throws Exception{ HttpClient client = new DefaultHttpClient(); try { HttpPos
public static void createTicket()throws Exception{
HttpClient client = new DefaultHttpClient();
try {
HttpPost post = new HttpPost(webPage);
Base64 b = new Base64();
String encoding = b.encodeAsString(new String("" + name + ":" + password + "").getBytes());
post.addHeader("Authorization","Basic "+encoding);
System.out.println(post.toString());
StringEntity params =new StringEntity("{'fields':{'project':{'key':'LCH-12'},'summary':'Sample issue','description':'Creating an issue via REST API','issuetype':{'name':'Bug'}}}");
post.setHeader("Content-type", "application/json");
post.setEntity(params);
HttpResponse httpResponse = client.execute(post);
System.out.println(httpResponse.toString());
}
catch(Exception e)
{
System.out.println(e);
}
finally {
httpClient.getConnectionManager().shutdown(); //Deprecated
}
}
错误消息如下:
POST HTTP/1.1
[内容类型:文本/普通;字符集=ISO-8859-1,内容长度:140,分块:false]
HTTP/1.1400错误请求[服务器:Apache Coyote/1.1,X-AREQUESTID:585x38x1,X-ASEN:SEN-L8200978,Set Cookie:JSESSIONID=2DFEB40B67B19BAFAFE81CF8A30B5A88;Path=/;HttpOnly,X-Seraph-LoginReson:OK,Set Cookie:atlassian.xsrf.token=B6XG-UN93-PXWZ-FOQK 124f8007dcf150dceaa1d5f561d364a35981781; lin;Path=,X-aseid:5vIx,Control:un1他,没有存储,没有转换,X-Content-Type-Options:nosniff,内容类型:application/json;charset=UTF-8,传输编码:chunked,日期:Thu,2016年7月14日04:15:23 GMT,连接:close]org.apache.http.conn。BasicManagedEntity@4b952a2d
根据您发布的代码片段,问题在于不允许使用单引号作为字段分隔符 到目前为止,Java系统中最简单的方法是使用Java的众多JSON库中的一个,以确保引用JSON所期望的内容
另外,作为一个友好的参考,不需要做
newstring(“+name+”:“+password+”)
,因为Java会自动从字符串文本和值的串联中创建一个新字符串。所以String str=“”+name+”:“+password;
就是您所需要的一切。然后您可以调用str.getBytes()
如果需要byte[]
进入StringEntity
,虽然会更清楚。根据您发布的代码片段,问题是不能允许单引号作为字段分隔符
到目前为止,Java系统中最简单的方法是使用Java的众多JSON库中的一个,以确保引用JSON所期望的内容
另外,作为一个友好的参考,不需要做
newstring(“+name+”:“+password+”)
,因为Java会自动从字符串文本和值的串联中创建一个新字符串。所以String str=“”+name+”:“+password;
就是您所需要的一切。然后您可以调用str.getBytes()
如果需要字节[]
进入StringEntity
,虽然会更清楚。谢谢你的回复,我的要求是我需要使用json和rest api在jira中创建问题,但我收到400 https错误我想我的字符串实体有错误如何更改我的字符串实体我为不够明确而道歉。更改'}“”;
至'}}.replaceAll(“'”,“\”))
这应该会让你更接近你的目标答案,我的要求是我需要使用json和rest api在jira中创建问题,但我收到400个https错误我想我的字符串实体是错误的,我该如何更改我的字符串实体我为不够明确表示歉意。请将'}}“;
更改为'}(“'”、“\”);
这将使您更接近您的目标。我稍后将提供源代码,请参阅:我稍后将提供源代码,请参阅: