当前位置: 首页 > 面试题库 >

如何在Java中将请求有效负载发送到REST API?

仉运乾
2023-03-14
问题内容

我想从以下位置检索JSON数据:https :
//git.eclipse.org/r/#/c/11376/

要求网址: https://git.eclipse.org/r/gerrit/rpc/ChangeDetailService

请求方法: POST

请求标头:

Accept:application/json

Content-Type:application/json; charset=UTF-8

请求有效负载:

{"jsonrpc":"2.0","method":"changeDetail","params":[{"id":11376}],"id":1}

我已经尝试过这个答案,但是我得到了400 BAD REQUEST

谁能帮我解决这个问题?

谢谢。


问题答案:

以下代码对我有用。

//escape the double quotes in json string
String payload="{\"jsonrpc\":\"2.0\",\"method\":\"changeDetail\",\"params\":[{\"id\":11376}],\"id\":2}";
String requestUrl="https://git.eclipse.org/r/gerrit/rpc/ChangeDetailService";
sendPostRequest(requestUrl, payload);

方法实现:

public static String sendPostRequest(String requestUrl, String payload) {
    try {
        URL url = new URL(requestUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Accept", "application/json");
        connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
        writer.write(payload);
        writer.close();
        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        StringBuffer jsonString = new StringBuffer();
        String line;
        while ((line = br.readLine()) != null) {
                jsonString.append(line);
        }
        br.close();
        connection.disconnect();
        return jsonString.toString();
    } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
    }

}


 类似资料:
  • 问题内容: 我有一个向我的Java Servlet发送POST请求的javascript库,但是在该方法中,我似乎无法获取请求有效内容。在chrome Developer Tools中,所有内容都位于标头标签的“请求有效负载”部分中,并且内容在那里,而且我知道doPost方法正在接收POST,但它只是空白。 对于 对象,我可以通过什么方式在请求有效负载中获取数据? 这样做 两者最终都没有数据 问题

  • 问题内容: 在Java中,如何编写HTTP请求消息并将其发送到HTTP WebServer? 问题答案: 你可以使用。 示例(从此处开始),进行了改进。包括在链接腐烂的情况下:

  • 问题内容: 我只想知道如何确定在无提示推送中要执行的操作: 这是我发送给客户的: 现在的问题是,当我添加以确定静默推送是为了让“订单更新”显示警报通知时。 问题答案: 有一些选择!让我们花点时间了解所有不同的有效负载及其用法。 简单有效载荷 显示在通知中心:是 唤醒应用以执行后台任务:否 带有自定义通知声音的有效负载 显示在通知中心:是 唤醒应用以执行后台任务:否 :在您的应用程序包中添加自定义通

  • 问题内容: 我想从Java代码登录到应用程序。这是我的代码… 但我无法登录,它只返回登录页面。 如果有人可以,请帮助我了解我在做什么错。 问题答案: 错误 :-( www-form 中间有多余的空格) 正确

  • 我正在研究一个播放器的集成,该播放器必须在浏览器中播放由Widevine DRM保护的流。 我查了一些知名玩家: DashJs-https://github.com/Dash-Industry-Forum/dash.js/wiki 幸运的是,这些播放器提供了一些使用Widevine DRM保护的流的示例。 我的问题涉及XHR执行以检索DRM密钥。在任何Widevine安全流中,我可以看到(在dev

  • 本文向大家介绍.NET Framework 使用System.Net.WebClient发送带有字符串有效负载的POST请求,包括了.NET Framework 使用System.Net.WebClient发送带有字符串有效负载的POST请求的使用技巧和注意事项,需要的朋友参考一下 示例