使用Java 11 HttpClient调用Reddit API遇403错误,Postman却正常?
问题分析与解决
你的问题出在Authorization请求头的格式错误——代码里的"bearer" + token拼接后,bearer和令牌之间没有空格,导致Reddit的OAuth服务无法正确解析令牌,从而返回403 Forbidden。Postman里你应该是手动给bearer和令牌之间加了空格,所以请求能正常通过。
OAuth 2.0的Bearer令牌规范明确要求,Bearer(大小写不敏感)和令牌值之间必须有一个空格分隔,这是多数OAuth服务端的强制校验规则。
修正后的代码如下:
HttpClient httpClient = HttpClient.newBuilder().build(); String endpoint = "https://oauth.reddit.com/api/v1/me/trophies"; HttpRequest request = HttpRequest.newBuilder().uri(new URI(endpoint)) .header("Authorization", "bearer " + token) // 添加了bearer与token之间的空格 .build();
内容的提问来源于stack exchange,提问作者SpaceBoundRocket
相关产品推荐
相关产品推荐

