gpt4 book ai didi

java - Spring 启动 : RestTemplate postForObject 400 bad request

转载 作者:行者123 更新时间:2023-11-30 07:05:28 24 4
gpt4 key购买 nike

在使用 RestTemplate 发送 POST 请求时,我一直收到 400 BAD 请求。这是我的代码:

    MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<String, Object>();
requestBody.add("message_id", "msgid");
requestBody.add("message", "qwerty");
requestBody.add("client_id", "111");
requestBody.add("secret_key", "222");

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Accept", "application/json");
headers.add("Content-Type", "application/json");

HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<MultiValueMap<String, String>>(requestBody, headers);

RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.postForObject("https://abc.com/api/request", httpEntity, String.class);
JSONParser parser = new JSONParser();
try {
JSONObject jsonObject = (JSONObject) parser.parse(response);
System.out.println(jsonObject.get("status"));
} catch (ParseException e) {
e.printStackTrace();
}

我想要实现的是转换 ff。 spring 的 php 代码:

<?php
$arr_post_body = array(
"message_id" => "qwerty",
"message" => "Welcome to My life!",
"client_id" => "111",
"secret_key" => "222"
);

$query_string = "";
foreach($arr_post_body as $key => $frow)
{
$query_string .= '&'.$key.'='.$frow;
}

$URL = "https://abc.com/api/request";
$curl_handler = curl_init();
curl_setopt($curl_handler, CURLOPT_URL, $URL);
curl_setopt($curl_handler, CURLOPT_POST, count($arr_post_body));
curl_setopt($curl_handler, CURLOPT_POSTFIELDS, $query_string);
curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($curl_handler);
curl_close($curl_handler);
exit(0);

?>

有什么问题吗?请注意,我正在发布到外部链接 (API),它是 HTTPS。

最佳答案

您是否在如下所示的 HTTP header 中添加接受和内容类型后对其进行了测试?

MultiValueMap<String, Object> headers = new LinkedMultiValueMap<String, Object>();
headers.add("Accept", "application/json");
headers.add("Content-Type", "application/json");

然后添加您的请求主体并使用 RestTemplate 进行 postForObject 调用。

关于java - Spring 启动 : RestTemplate postForObject 400 bad request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26690778/

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