本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Curl 可以工作,但相应的 HttpConnection POST 请求失败并出现 400 错误

发布于2024-10-29 22:46     阅读(1063)     评论(0)     点赞(0)     收藏(3)


这是我的 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_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();


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/689394/b35273d831f5a9b81bd9/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)