詳解使用Spring的restTemplete進行Http請求
更新時間:2017年06月05日 16:02:07 作者:God_Ming
本篇文章主要介紹了詳解使用Spring的restTemplete進行Http請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下
最近學(xué)習(xí)Spring框架,本文介紹了使用Spring的restTemplete進行Http請求,留個筆記
/*
* rest templete
*/
public class RestTemplateTest {
//private static String url = "http://10.2.1.46:8080";
private static String url = "http://127.0.0.1:8080/test";
private static String autoDeploy = "/api/ddd/manages/yyy/1111";
public static void main(String[] args) throws UnsupportedEncodingException {
JSONObject token1 = LoginTest.login(url);
JSONObject token = new JSONObject();
token.put("token", token1.getString("token"));
token.put("userName", "chenchen.ming@56qq.com");
String name = "明辰晨";
token.put("name", URLEncoder.encode(name, "UTF-8"));
String jsonBody = DmsAutoDeployTest.dmsAutoDeployData();
autoDeploy(jsonBody,token.toJSONString());
}
/*
* 主要的post方法
*/
public static void autoDeploy(String json,String token){
String autoDeployUrl = url + autoDeploy;
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
//一定要設(shè)置好ContentType為utf8否則會亂碼
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("Authentication", token);//設(shè)置自定義session header
HttpEntity<String> formEntity = new HttpEntity<String>(json, headers);
Map<String, Object> parameterMap = new HashMap<>();
//entity = Header,uriVariables = Parameters;
restTemplate.postForObject(autoDeployUrl, formEntity, String.class, parameterMap);
}
/*
* 測試
*/
public static void test4(){
JSONObject response = null;
Map<String,Object> param = new HashMap<>();
param.put("ming", "chyen");
String json = "haha";
try {
response = RestUtil.post("http://127.0.0.1:8080/cloud-master/api/release/manages/detail", JSONObject.class,null,null,json);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(response);
}
/**
* 測試
*/
public static void test(){
RestTemplate restTemplate = new RestTemplate();
Map<String, Object> parameterMap = new HashMap<>();
restTemplate.getForObject("url", String.class,parameterMap);
//factory.createRequest(uri, httpMethod)
}
}
Util
/**
* 使用Spring的restTemplate進行http請求
* @author Mingchenchen
*
*/
public class RestUtil {
private static RestTemplate restTemplate = new RestTemplate();
/**
* Get方法
*
* @param url:地址
* @param returnClassName:返回對象類型,如:String.class
* @param parameters:parameter參數(shù)
* @return
*/
public static <T> T get(String url, Class<T> returnClassName, Map<String, Object> parameters){
if (parameters == null) {
return restTemplate.getForObject(url, returnClassName);
}
return restTemplate.getForObject(url, returnClassName, parameters);
}
/**
* post請求,包含了路徑,返回類型,Header,Parameter
*
* @param url:地址
* @param returnClassName:返回對象類型,如:String.class
* @param inputHeader
* @param inputParameter
* @param jsonBody
* @return
*/
public static <T> T post(String url,Class<T> returnClassName,Map<String,Object> inputHeader,Map<String,Object> inputParameter,String jsonBody){
//請求Header
HttpHeaders httpHeaders = new HttpHeaders();
//拼接Header
if (inputHeader != null) {
Set<String> keys = inputHeader.keySet();
for (Iterator<String> i = keys.iterator(); i.hasNext();) {
String key = (String) i.next();
httpHeaders.add(key, inputHeader.get(key).toString());
}
}
//設(shè)置請求的類型及編碼
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
httpHeaders.setContentType(type);
httpHeaders.add("Accept", "application/json");
List<MediaType> acceptableMediaTypes = new ArrayList<>();
acceptableMediaTypes.add(MediaType.ALL);
httpHeaders.setAccept(acceptableMediaTypes);
HttpEntity<String> formEntity = new HttpEntity<String>(jsonBody, httpHeaders);
if (inputParameter==null) {
return restTemplate.postForObject(url, formEntity, returnClassName);
}
return restTemplate.postForObject(url, formEntity, returnClassName, inputParameter);
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于maven全局配置文件settings.xml解析
這篇文章主要介紹了關(guān)于maven全局配置文件settings.xml,具有很好的參考價值,希望對大家有所幫助。2022-03-03
springboot跨域過濾器fetch react Response to p
這篇文章主要介紹了springboot跨域過濾器fetch react Response to preflight request doesn‘t pass access control check問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Java 中二進制轉(zhuǎn)換成十六進制的兩種實現(xiàn)方法
這篇文章主要介紹了Java 中二進制轉(zhuǎn)換成十六進制的兩種實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-06-06

