gpt4 book ai didi

java - 如何从 Java REST API 请求中解码 JSON?

转载 作者:行者123 更新时间:2023-12-02 05:24:53 25 4
gpt4 key购买 nike

我正在使用 POST 从 Java 向 API 发送数据。

我想要做的是将特定变量发送到 POST 请求中的 API,然后使用它的值。但目前该值是空的。该 API 肯定正在被调用。

我的 Java 看起来像这样:

String line;
StringBuffer jsonString = new StringBuffer();

try {
URL url = new URL("https://www.x.com/api.php");
String payload = "{\"variable1\":\"value1\",\"variable2\":\"value2\"}";

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()));
while ((line = br.readLine()) != null) {
jsonString.append(line);
}
br.close();
connection.disconnect();
}

这是基于:How to send Request payload to REST API in java?

当前无法正确读取该值。我用 Java 发送的正确吗?我需要做一些事情来解码它吗?

最佳答案

并非为所有 HTTP POST 请求设置 $_POST 变量,而是仅针对特定类型,例如 application/x-www-form-urlencoded。

由于您要发布包含 JSON 实体 (application/json) 的请求,因此需要按如下方式访问它。

$json = file_get_contents('php://input');
$entity= json_decode($json, TRUE);

关于java - 如何从 Java REST API 请求中解码 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com