package com.haodf.search.manager.utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
@Slf4j
public class HttpClientUtil {
public static ResponseEntity<String> restTemplatePost(String url, String params) {
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> requestEntity = new HttpEntity<String>(params, headers);
RestTemplate restTemplate = new RestTemplate();
//执行HTTP请求
return restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
}
public static String restTemplatGet(String url) {
RestTemplate restTemplate = new RestTemplate();
//执行HTTP请求
return restTemplate.getForObject(url, String.class);
}
public static void restTemplatDelete(String url) {
RestTemplate restTemplate = new RestTemplate();
//执行HTTP请求
restTemplate.delete(url);
}
/**
* java原生的http请求
* resttemplate不支持:http://localhost:8080//index/handleOneData?typeName=doctor&type=1&id=6964492271
* @param urlToRead
* @return
* @throws Exception
*/
public static String getHttpURLConnection(String urlToRead) throws Exception {
StringBuilder result = new StringBuilder();
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
return result.toString();
}
/**
* post消息体是json的请求
* @param url
* @param request
* @return
*/
public static String postJson(String url, String request){
RestTemplate restTemplate = new RestTemplate();
// Add the Jackson message converter
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
// set headers
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
headers.setContentType(type);
HttpEntity<String> entity = new HttpEntity<>(request, headers);
// send request and parse result
ResponseEntity<String> response = restTemplate
.exchange(url, HttpMethod.POST, entity, String.class);
return response.getBody();
}
}
RestTemplate发送Http请求
未经允许不得转载:搜云库技术团队 » RestTemplate发送Http请求