我必须进行 REST
调用,其中包括自定义标头和查询参数。我设置了我的 HttpEntity
只有标题(没有正文),我使用 RestTemplate.exchange()
方法如下:
HttpHeaders headers = new HttpHeaders();
headers.set("Accept", "application/json");
Map<String, String> params = new HashMap<String, String>();
params.put("msisdn", msisdn);
params.put("email", email);
params.put("clientVersion", clientVersion);
params.put("clientType", clientType);
params.put("issuerName", issuerName);
params.put("applicationName", applicationName);
HttpEntity entity = new HttpEntity(headers);
HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class, params);
这在客户端失败, dispatcher servlet
无法解析对处理程序的请求。调试后,看起来请求参数没有被发送。
当我使用请求正文和没有查询参数的 POST
进行交换时,它工作得很好。
有没有人有任何想法?
原文由 Elwood 发布,翻译遵循 CC BY-SA 4.0 许可协议
好的,所以我是个白痴,我将查询参数与 url 参数混淆了。我有点希望有一种更好的方法来填充我的查询参数,而不是一个丑陋的串联字符串,但我们已经有了。这只是使用正确参数构建 URL 的一种情况。如果您将它作为字符串传递,Spring 也会为您处理编码。