【发布时间】:2021-03-22 13:21:42
【问题描述】:
我在一件简单的事情上遇到了一些麻烦。
我正在尝试向其他 REST 服务发送请求
//getting restTemplate from RestTemplateBuilder.build()
//endpoint and rest of variables came in properties
Map<String, String> map = new HashMap<>();
map.put("app", app);
map.put("username", username);
map.put("password", password);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
String token = restTemplate.postForObject(loginEndpoint, headers, String.class, map);
我收到了:
Unexpected error occurred in scheduled task.
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
奇怪的是,当我使用简单的 CURL 调用并且工作顺利时。
已经检查了变量和端点,是正确的。
【问题讨论】:
-
您的端点期望什么?
-
基本上:{{authUrl}}?app={{app}}&password={{password}}&username={{user}} 只需 3 个参数,我得到一个字符串作为响应。跨度>
-
您的 loginEndpoint 是否有适当的占位符?
-
您传递给 postForObject 的 map 参数是用来填充 uri 字符串中的占位符。
-
进行开关,它工作正常。谢谢