使用 Spring RestTemplate 对接一个奇怪的接口, 这个接口使用 POST 请求但是是url 带的参数 我们在postman上测试是正常的. 但是在代码中使用则出现 签名错误的提示(请求参数问题)
postman 请求截图
Java代码
url = String.format(url + "?app_id=%s&expire_time=%s&callback_data=%s&user_type=%s&sign=%s", APP_ID, time, data, userType, sign);
log.info("发起请求 url: " + url);
HttpHeaders headers = new HttpHeaders();
headers.add("Php-Run", "swoole");
//将请求头部和参数合成一个请求
return restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(headers), String.class).getBody();
请求结果
修改后的Java代码
url = String.format(url + "?app_id=%s&expire_time=%s&callback_data=%s&user_type=%s&sign=%s", APP_ID, time, data, userType, sign);
URI uri = new URI(url);
log.info("发起请求 url: " + url);
HttpHeaders headers = new HttpHeaders();
headers.add("Php-Run", "swoole");
//将请求头部和参数合成一个请求
return restTemplate.exchange(uri, HttpMethod.POST, new HttpEntity<>(headers), String.class).getBody();
请求结果