使用RestTemplate提交表单数据

发布于 2019-12-27  约 4 分钟

用exchange方法提交

exchange既可以执行POST方法,还可以执行GET,所以应用最为广泛

String url = "http://localhost/";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
//请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
params.add("username", "用户名");//支持中文
params.add("password", "123456");
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
//执行HTTP请求
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
//输出结果
System.out.println(response.getBody());

用postForEntity进行提交

postForEntity是对exchange的简化,仅仅只需要减少HttpMethod.POST参数

String url = "http://localhost/";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
//请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
params.add("username", "用户名");//支持中文
params.add("password", "123456");
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
//仅需替换exchange方法
ResponseEntity<String> response = client.postForEntity(url, requestEntity , String.class);
//输出结果
System.out.println(response.getBody());
阅读 144发布于 2019-12-27

推荐阅读
君莫笑的博客
用户专栏

君莫笑的博客,长期记录、分享一些自己开发的心得、体会

0 人关注
25 篇文章
专栏主页
目录