2014-01-29 30 views
1

这里是我的卷曲请求,这工作完全正常失败。卷曲的作品,但相应的HttpConnection POST请求的400错误

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”,, “值”:“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(); 
+0

你似乎已经忘了'JSON ='起步。 – immibis

+0

我试着用json =在开始时也是如此,但同样的400错误。字符串数据= “JSON ='{\ ”参数\“:[{\ ”名称\“:\ ”IPA_URL \“,\ ”值\“:\ ”一\“},{\ ”名称\“:\” IPA_FILENAME \”,\ “值\”:\ “a.ipa \”}]}'“; – dev123

+0

谢谢immibis!此外,我错过了正确的contentType是“application/x-www-form-urlencoded”,它现在可以工作。谢谢谢谢!! – dev123

回答

1

你错过了内容类型和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_FI‌​LENAME\",\"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();