如何使用Spring RestTemplate发布表单数据?
我想将以下(工作)curl代码段转换为RestTemplate调用:
curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email
如何正确传递email参数?以下代码导致404 Not Found响应:
String url = "https://app.example.com/hr/email";Map<String, String> params = new HashMap<String, String>();
params.put("email", "first.last@example.com");
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity( url, params, String.class );
我试图在PostMan中制定正确的调用,并且可以通过在主体中将email参数指定为“ form-data”参数来使其正常工作。在RestTemplate中实现此功能的正确方法是什么?
回答:
POST方法应沿着HTTP请求对象发送。并且该请求可以包含HTTP标头或HTTP正文或两者。
因此,让我们创建一个HTTP实体,并在正文中发送标头和参数。
HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
map.add("email", "first.last@example.com");
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
以上是 如何使用Spring RestTemplate发布表单数据? 的全部内容, 来源链接: utcz.com/qa/426707.html