RestTemplate 发送Post请求,url查询参数和json参数

时间:2025-02-22 07:01:43
public void postRequest(String url) { // 设置超时时间 SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setReadTimeout(30 * 1000); requestFactory.setConnectTimeout(30 * 1000); RestTemplate restTemplate = new RestTemplate(requestFactory); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); // 组装body参数 Map body = new HashMap(); body.put("1", "1"); body.put("2", "2"); // 将map转为json串,放入restTemplate的参数对象中 String bodyJsonData = JSON.toJSONString(body); HttpEntity<String> request = new HttpEntity<>(bodyJsonData, headers); // 组装url参数 ?username=zhangsan&age=20&sex=男 MultiValueMap<String, String> queryMap = new LinkedMultiValueMap<>(); queryMap.add("username", "zhangsan"); queryMap.add("age", "20"); queryMap.add("sex", "男"); // 将参数拼入请求url中 UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url).queryParams(queryMap); // 发起请求 ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(builder.toUriString(), request, JSONObject.class); System.out.println(builder.toUriString()); System.out.println(responseEntity); }