如何解决使用 Feign 客户端发布表单 url 编码数据时收到错误请求
响应:{"httpCode":"400","httpMessage":"Bad Request","moreInformation":"API 请求中缺少一个或多个必需的 API 参数。"}
从日志中我可以看到所有参数都按如下方式传递 grant_type=client_credentials&scope=abcd&client_id=sample&client_secret=sample
@FeignClient(name = "tru",url = "${api.tru.url}",configuration = TruConfig.class)
public interface TruClient {
@PostMapping(value = "/tru/oauth2/token",consumes = APPLICATION_FORM_URLENCODED_VALUE)
AuthTokenResponse getAccessToken(@RequestBody MultiValueMap<String,?> formParams);
class FeignSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignFormEncoder() {
return new FormEncoder(new SpringEncoder(messageConverters));
}
}
}
解决方法
我认为“范围”是不必要的。 请在此处查看此文档 https://auth0.com/docs/flows/call-your-api-using-the-client-credentials-flow 你的参数应该是这样的
"grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&audience=YOUR_API_IDENTIFIER"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。