欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解使用Spring的restTemplete進(jìn)行Http請求

 更新時間:2017年06月05日 16:02:07   作者:God_Ming  
本篇文章主要介紹了詳解使用Spring的restTemplete進(jìn)行Http請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近學(xué)習(xí)Spring框架,本文介紹了使用Spring的restTemplete進(jìn)行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進(jìn)行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解析

    這篇文章主要介紹了關(guān)于maven全局配置文件settings.xml,具有很好的參考價值,希望對大家有所幫助。
    2022-03-03
  • springboot跨域過濾器fetch react Response to preflight request doesn‘t pass access control check問題

    springboot跨域過濾器fetch react Response to p

    這篇文章主要介紹了springboot跨域過濾器fetch react Response to preflight request doesn‘t pass access control check問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • SpringBoot2整合ElasticJob框架過程詳解

    SpringBoot2整合ElasticJob框架過程詳解

    這篇文章主要介紹了SpringBoot2整合ElasticJob框架過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Spring Boot Admin 快速入門詳解

    Spring Boot Admin 快速入門詳解

    這篇文章主要介紹了SpringBoot Admin 使用指南(推薦),Spring Boot Admin 是一個管理和監(jiān)控你的 Spring Boot 應(yīng)用程序的應(yīng)用程序,非常具有實用價值,需要的朋友可以參考下
    2021-11-11
  • 為什么Java項目中別用!=null做判空

    為什么Java項目中別用!=null做判空

    本文主要介紹了為什么Java項目中別用!=null做判空,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java信號量Semaphore原理及代碼實例

    Java信號量Semaphore原理及代碼實例

    這篇文章主要介紹了Java信號量Semaphore原理及代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 一篇文章帶你入門java代理模式

    一篇文章帶你入門java代理模式

    這篇文章主要介紹了Java代理模式,結(jié)合實例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運算符、邏輯運算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2021-08-08
  • Java 中二進(jìn)制轉(zhuǎn)換成十六進(jìn)制的兩種實現(xiàn)方法

    Java 中二進(jìn)制轉(zhuǎn)換成十六進(jìn)制的兩種實現(xiàn)方法

    這篇文章主要介紹了Java 中二進(jìn)制轉(zhuǎn)換成十六進(jìn)制的兩種實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java使用雪花id生成算法詳解

    Java使用雪花id生成算法詳解

    SnowFlake算法,是Twitter開源的分布式id生成算法,在2014年開源,開源的版本由scala編寫。其核心思想就是-使用一個64bit的long型的數(shù)字作為全局唯一id
    2022-12-12
  • Mybatis中注解@MapKey的使用詳解

    Mybatis中注解@MapKey的使用詳解

    mybatis的原身是ibatis,現(xiàn)在已經(jīng)脫離了apache基金會。這篇文章主要介紹了Mybatis中注解@MapKey的使用的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評論