java 从https rest api调用http rest API时出现错误502

mbzjlibv  于 2023-04-04  发布在  Java
关注(0)|答案(2)|浏览(255)

我调用我的https REST API,它使用Postman在另一台服务器上调用http api,它返回502 bad gateway error。https API的身份验证设置在头部和accept:application/json中。所有其他未在远程服务器上调用ohter http api的https REST apis都可以正常工作。
我使用SpringBoot创建了带有身份验证的REST API。有GET和POST方法。它们都有类似https://...的URL。在调用它们之前,用户必须获得安全令牌。这些REST API可以作为war文件使用,该文件驻留在部署在tomcat中的Server_1上。从许多API中,我调用另一个驻留在另一个Server_2上的jar文件的Rest服务,其URL具有类似http://..的URL。当我调用驻留在Server_1上的war文件中的一个https rest api时,请求将通过Server_2。Server_2上的Http rest api使用JSON文件进行响应。我可以在Server_2的日志中看到它,并且我已经捕获了服务器之间的http流量。看起来http rest api接收到请求并发送回答案,但随后来自Server_1的https RestApi拒绝答案,因为它没有加密并给出坏网关502错误。是否有任何方法修复此错误?
//这是我在服务器2上调用http rest API的方式。这段代码是服务器1上https rest api的一部分(tomcat中的war文件)

public ResponseEntity<String> function()
{
RestTemplate restTemplate = new RestTemplate();
String myUrl = "http://xxxxxx:8081";
ResponseEntity<String> response = restTemplate.getForEntity(myUrl + "/api/test/suspend/12", String.class);
return responce
}
unhi4e5o

unhi4e5o1#

你的代码中有一些小问题,最后一行(return语句)需要用分号结束,你写了“responce”而不是“response”。

public ResponseEntity<String> function()
{
  RestTemplate restTemplate = new RestTemplate();
  String myUrl = "http://xxxxxx:8081";
  ResponseEntity<String> response = restTemplate.getForEntity(myUrl + "/api/test/suspend/12", String.class);
  return response;
}

您还应该使用HTTP请求的响应内容,并将其用作实际HTTPS请求的内容,否则您将混合无法工作的请求。

vyu0f0g1

vyu0f0g12#

在postman中,在Authorization选项卡下,有Type列表框,请选择“No Auth”

相关问题