我知道...这不是最佳实践,但有人要求我这样做:
我正在尝试获取一个端点,该端点接收具有 3 个参数的 json
正文(int, int, int)
并具有持有者身份验证。
头
header.setContentType(MediaType.APPLICATION_JSON);
header.set("authorization", bearerToken);
实体
HttpEntity<String> entity = new HttpEntity<>(requestjson.toString(), header);
休息模板
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
System.out.print(entity(:
<{"1stParam":1,"2ndParam":4881,"3rdParam":0},{Content-Type=[application/json], authorization=[Bearer bearerToken]}>
除了安全性和所有这些问题外,该请求还通过RestTemplate
显示400 HTTP
response
,Postman工作正常。
我也尝试了HttpURLConnection
但遇到了同样的问题。
感谢您的帮助:)
我刚刚编写了一个类似的解决方案,所以我很确定我知道这是什么。 您必须在Authorization
标头中包含Bearer
。 我认为此代码更改将解决您的问题:
header.set("Authorization", "Bearer " + bearerToken);
我将标题键大写。 我认为这并不重要,但我知道大写版本对我有用。 我的代码看起来像这样,它可以工作。
这里的基本思想是,Authorization
标头必须始终以正在执行的授权类型开头,以便服务器可以知道要使用的类型。 这是 400 错误而不是 404 错误是有道理的,因为标头在技术上格式不正确。