詳解使用Spring的restTemplete進(jìn)行Http請(qǐng)求
更新時(shí)間:2017年06月05日 16:02:07 作者:God_Ming
本篇文章主要介紹了詳解使用Spring的restTemplete進(jìn)行Http請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
最近學(xué)習(xí)Spring框架,本文介紹了使用Spring的restTemplete進(jìn)行Http請(qǐng)求,留個(gè)筆記
/* * 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否則會(huì)亂碼 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); } /* * 測(cè)試 */ 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); } /** * 測(cè)試 */ 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進(jìn)行http請(qǐng)求 * @author Mingchenchen * */ public class RestUtil { private static RestTemplate restTemplate = new RestTemplate(); /** * Get方法 * * @param url:地址 * @param returnClassName:返回對(duì)象類型,如: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請(qǐng)求,包含了路徑,返回類型,Header,Parameter * * @param url:地址 * @param returnClassName:返回對(duì)象類型,如: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){ //請(qǐng)求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è)置請(qǐng)求的類型及編碼 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); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于maven全局配置文件settings.xml解析
這篇文章主要介紹了關(guān)于maven全局配置文件settings.xml,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-03-03springboot跨域過(guò)濾器fetch react Response to p
這篇文章主要介紹了springboot跨域過(guò)濾器fetch react Response to preflight request doesn‘t pass access control check問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03SpringBoot2整合ElasticJob框架過(guò)程詳解
這篇文章主要介紹了SpringBoot2整合ElasticJob框架過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Java信號(hào)量Semaphore原理及代碼實(shí)例
這篇文章主要介紹了Java信號(hào)量Semaphore原理及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Java 中二進(jìn)制轉(zhuǎn)換成十六進(jìn)制的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了Java 中二進(jìn)制轉(zhuǎn)換成十六進(jìn)制的兩種實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-06-06