【问题标题】:Unable to make a post call using httpconnectionurl and outstreamwriter无法使用 httpconnectionurl 和 outstreamwriter 拨打电话
【发布时间】:2021-11-11 18:41:23
【问题描述】:

下面是我正在测试的代码。当我运行它时,我看到帖子正文是空的。当我在服务器端进行跟踪时,我可以看到我所有的标题,但正文是空的。你能在这里指出我的错误吗?

 String jsonstring = "{\"id\":\"1233\", \"userName\" : \"jump2\"}";
        JSONParser jsonParser = new JSONParser();
        JSONObject jsonObject = (JSONObject) jsonParser.parse(jsonstring);
        System.out.println(jsonObject.toJSONString());
        Long currentTime = System.currentTimeMillis();
        URL restUrl = new URL("http://myservers.com/v1/register");
        HttpURLConnection urlConnection = (HttpURLConnection) restUrl.openConnection();
        urlConnection.addRequestProperty("X-CORRELATION-ID", currentTime.toString());
        urlConnection.addRequestProperty("X-AUTH-APIKEY", "dDEdfaeFFDdddDF");
        urlConnection.addRequestProperty("Accept","application/json");
        urlConnection.addRequestProperty("Content-Type","application/json");

        urlConnection.setDoOutput(true);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8");
        jsonObject.writeJSONString(outputStreamWriter);
        System.out.println(urlConnection.getResponseCode());
        System.out.println(urlConnection.getRequestMethod());
        System.out.println(urlConnection.getContentEncoding());
        outputStreamWriter.flush();
        outputStreamWriter.close();
        urlConnection.disconnect();```

【问题讨论】:

    标签: java json httpurlconnection


    【解决方案1】:

    您必须将请求方法设置为 POST

    urlConnection.setRequestMethod("POST");
    

    Example for HttpUrlConnection.

    【讨论】:

    • 感谢您的回答,但设置 setDoOutput(true) 使其默认成为发布请求?
    • 无设置 setDoOutputTrue(true) 不会使其成为 POST 请求。事实上,setDoOutput 是在 URLConnection 中定义的,它甚至没有被 HttpURLConnection 覆盖,这意味着它独立于 Http 协议。如果我的回答解决了您的问题,请将其标记为“已接受”(勾号)。
    • 不幸的是它不起作用。但是,当我替换 ``` OutputStreamWriter outputStreamWriter = new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8"); jsonObject.writeJSONString(outputStreamWriter);```` OutputStream out = urlConnection.getOutputStream(); out.write(jsonstring.getBytes()); 它按预期工作。
    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多