[英]HTTP POST request to JIRA using Java yields 400 bad request error, curl works fine
[英]Curl works but corresponding HttpConnection POST request fails as 400 error
这是我的curl请求,效果很好。
curl -X POST http://build-master-mobile.xxx.com:8080/job/Reprovision-IPA/build --data-urlencode json ='{“ parameter”:[{“ name”:“ IPA_URL”, “ value”:“ xxx”},{“ name”:“ IPA_FILENAME”,“ value”:“ xxx.ipa”}]}'
现在,我尝试使用Httpconnection从我的Java代码进行发布,如下所示,但它给了我400错误的请求。 专家能帮我这个忙吗?
URL url = new URL("http://build-master-mobile.xxx.com:8080/job/Reprovision-IPA/build");
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection)urlConnection;
httpConn.setRequestProperty("Accept", "application/json");
httpConn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
httpConn.setRequestProperty("Connection", "keep-alive");
httpConn.setRequestMethod("POST");
String data = "{\"parameter\":[{\"name\":\"IPA_URL\",\"value\":\"xxx\"},{\"name\":\"IPA_FILENAME\",\"value\":\"xxx.ipa\"}]}";
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
// send request
OutputStreamWriter wr = new OutputStreamWriter(httpConn.getOutputStream());
wr.write(data.toString());
wr.flush();
wr.close();
BufferedReader rd = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
您错过了内容类型和json,请检查以下内容:
URL url = new URL("http://build-master-mobile.xxx.com:8080/job/Reprovision-IPA/build");
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection)urlConnection;
httpConn.setRequestProperty("Accept", "application/json");
httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
httpConn.setRequestProperty("Connection", "keep-alive");
httpConn.setRequestMethod("POST");
String data = "json='{\"parameter\":[{\"name\":\"IPA_URL\",\"value\":\"a\"},{\"name\":\"IPA_FILENAME\",\"value\":\"a.ipa\"}]}'";
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
// send request
OutputStreamWriter wr = new OutputStreamWriter(httpConn.getOutputStream());
wr.write(data.toString());
wr.flush();
wr.close();
BufferedReader rd = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.