整合方法:
package x.bfb6.cn.bfb_km.utils;
import com.alibaba.fastjson.JSONObject;
import org.springframework.http.*;
import org.springframework.web.client.RequestCallback;
import org.springframework.web.client.ResponseExtractor;
import org.springframework.web.client.RestTemplate;
import java.util.Iterator;
import java.util.Map;
import java.util.Objects;
public class HttpGetAndPost {
/**
* 通用post请求封装
* @param url
* @param jsonData
* @return
*/
public String httpPost(String url, JSONObject jsonData){
RestTemplate restTemplate = new RestTemplate();
//设置Http Header
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type","application/json");
headers.add("Accept","application/json, text/plain, */*");
//设置请求媒体数据类型
headers.setContentType(MediaType.APPLICATION_JSON);
//设置返回媒体数据类型
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> formEntity = new HttpEntity<String>(jsonData.toString(), headers);
return restTemplate.postForObject(url, formEntity, String.class);
}
/**
* 通用get请求
* @param url
* @return
*/
public String httpGet(String url){
RestTemplate restTemplate = new RestTemplate();
//设置Http Header
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type","application/json");
headers.add("Accept","application/json, text/plain, */*");
//设置请求媒体数据类型
headers.setContentType(MediaType.APPLICATION_JSON);
//设置返回媒体数据类型
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
return restTemplate.getForObject(url, String.class);
}
/**
* 自定义请求头的post请求
* @param url
* @param jsonData
* @param jsonHeaders
* @return
*/
public String httpPost(String url, JSONObject jsonData,JSONObject jsonHeaders){
RestTemplate restTemplate = new RestTemplate();
//设置Http Header
HttpHeaders headers = getHeaders(jsonHeaders);
//设置请求媒体数据类型
headers.setContentType(MediaType.APPLICATION_JSON);
//设置返回媒体数据类型
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> formEntity = new HttpEntity<String>(jsonData.toString(), headers);
return restTemplate.postForObject(url, formEntity, String.class);
}
/**
* 自定义请求头的get请求
* @param url
* @param jsonHeaders
* @return
*/
public String httpGet(String url,JSONObject jsonHeaders){
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = getHeaders(jsonHeaders);
HttpEntity request = new HttpEntity(headers);
// 构造execute()执行所需要的参数。
RequestCallback requestCallback = restTemplate.httpEntityCallback(request, JSONObject.class);
ResponseExtractor<ResponseEntity<JSONObject>> responseExtractor = restTemplate.responseEntityExtractor(JSONObject.class);
// 执行execute(),发送请求
return Objects.requireNonNull(Objects.requireNonNull(restTemplate.execute(url, HttpMethod.GET, requestCallback, responseExtractor)).getBody()).toString();
}
/**
* json转化请求头
* @param jsonHeaders
* @return
*/
public static HttpHeaders getHeaders(JSONObject jsonHeaders){
Iterator iterator = jsonHeaders.entrySet().iterator();
HttpHeaders headers = new HttpHeaders();
while (iterator.hasNext()){
Map.Entry entry = (Map.Entry) iterator.next();
headers.add(entry.getKey().toString(),entry.getValue().toString());
}
return headers;
}
}
嫌麻烦???不会用???往这看
存在实体json请求
private void postUrl(){
String url = "你的url";
//请求头携带token
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("token", 你的token);
//比如HttpEntity<User> httpEntity = new HttpEntity<User>(user, headers);
HttpEntity<实体类> httpEntity = new HttpEntity<实体类>(实体类携带参数, headers);
ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
}
如果不是实体只需要改变(HttpEntity)
Map<String, Object> dic = new HashMap<>();
dic.put("id",你的id)
HttpEntity httpEntity = new HttpEntity<>(dic, headers);
get的话更加简单了url携带参数
ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);