Spring中的Http请求如何使用restTemplete实现

这篇文章给大家介绍Spring中的Http请求如何使用restTemplete实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站制作,高端网页制作,对VR全景等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业成都网站推广优化,H5建站,响应式网站。

使用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();
    //一定要设置好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);//设置自定义session header

    HttpEntity formEntity = new HttpEntity(json, headers);

    Map parameterMap = new HashMap<>();
    //entity = Header,uriVariables = Parameters;
    restTemplate.postForObject(autoDeployUrl, formEntity, String.class, parameterMap);
  }

  /*
  * 测试
  */
  public static void test4(){
      JSONObject response = null;
      Map 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 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参数
   * @return
   */
  public static  T get(String url, Class returnClassName, Map 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 post(String url,Class returnClassName,Map inputHeader,Map inputParameter,String jsonBody){
    //请求Header
    HttpHeaders httpHeaders = new HttpHeaders();
    //拼接Header
    if (inputHeader != null) {
      Set keys = inputHeader.keySet(); 
      for (Iterator i = keys.iterator(); i.hasNext();) { 
        String key = (String) i.next(); 
        httpHeaders.add(key, inputHeader.get(key).toString()); 
      } 
    }
    //设置请求的类型及编码
    MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
    httpHeaders.setContentType(type);
    httpHeaders.add("Accept", "application/json");
    List acceptableMediaTypes = new ArrayList<>();
    acceptableMediaTypes.add(MediaType.ALL);
    httpHeaders.setAccept(acceptableMediaTypes);

    HttpEntity formEntity = new HttpEntity(jsonBody, httpHeaders);
    if (inputParameter==null) {
      return restTemplate.postForObject(url, formEntity, returnClassName);
    }
    return restTemplate.postForObject(url, formEntity, returnClassName, inputParameter);
  }
}

关于Spring中的Http请求如何使用restTemplete实现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章名称:Spring中的Http请求如何使用restTemplete实现
文章位置:http://hbruida.cn/article/pddooo.html