问题描述
任何帮助或提示将不胜感激。 我有一个不记名令牌字符串,我在邮递员中成功使用了它,但是在 Java 代码中,我将不记名令牌放在“授权”标头中,但是当我调用 Web 服务时,即使令牌过期很长时间,我也会收到“无授权”错误。我使用逗号“,”来分隔标题“键”。我如何编写 java 代码,使其看起来类似于 Postman,它是每个标头变量的新行?
代码如下:
private String requestRest(String url) {
httpentity<String> request = new httpentity<String>(httpHeaders());
SimpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(10000);
factory.setReadTimeout(10000);
RestTemplate restTemplate = new RestTemplate(factory);
ResponseEntity<String response = restTemplate.exchange(url,HttpMethod.GET,request,String.class);
if (response != null && response.hasBody()) {
return response.getBody();
}
else
{
return new String ("{}");
}
}
private HttpHeaders httpHeaders()
{
StringBuffer userDetails = new StringBuffer("Authorization")
.append(":").append(authorizationToken)
.append(",")
.append("x-environment-id").append(":").append("62")
.append(",")
.append("x-environment-system").append(":").append;("T1OT");
byte[] userDetailsBytes = userDetails.toString().getBytes();
byte[] base64CredsBytes = Based64.encodeBase64(userDetailsBytes);
String base64Creds = new String(base64CredsBytes);
HttpHeaders httpheaders = new HttpHeaders();
httpheaders.add("Authorization","Basic " + base64Creds);
return httpheaders;
}
在邮递员中,我能够成功调用 Web 服务。我使用 tcpmonitor 查看邮递员中的实际请求:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)