zoukankan      html  css  js  c++  java
  • 微服务——RestTemplate

    GET请求:

      第一种:getForEntity:

        此方法返回的是ResponseEntity,该对象是Spring对HTTP请求响应的封装。

        RestTemplate rt = new RestTemplate();

        ResponseEntity<String> re = rt.getForEntity(uri,String.class);

        String body = re.getBody();

        或者:

        ResponseEntity<User> re = rt.getForEntity(uri,User.class);

        User body = re.getBody();



      此方法提供了三个不同的重载实现:

        1.getForEntity(String url,Class responseType,Object...urlVariables)

          其中responseType是指返回的类型,urlVariables是get请求的参数,为数组类型,数组中的值顺序要和url中参数顺序一致。比如:

          String url = http://USER-SERVICE/user.do?name={1}&age={2};

          urlVariables=["jason",26];

        2.getForEntity(String url,Class responseType,Map urlVariables)

          map中的key对应url中参数的名字,value对应参数的值。比如:

          String url = http://USER-SERVICE/user.do?param1={name} & param2={age};

          map.put("name","jason");

          map.put("age",26);

    3.getForEntity(URI url,Class responseType)

    该方法中使用URI代替了之前的url和urlVariables参数进行绑定。

    第二种:getForObject:

    此方法是对getForEntity的进一步的封装,实现请求直接返回包装好的对象内容。

    RestTemplate rt = new RestTemplate();

    String rs = rt.getForObject(uri,String.class);

    或者:

    User user = rt.getForObject(uri,User.class);


    也提供了三个不同的重载实现,用法和上面的一样:

    1.getForObject(String url,Class responseType,Object...urlVariables)


    2.getForObject(String url,Class responseType,Map urlVariables)


    3.getForObject(URI url,Class responseType)


    POST请求:

    第一种:postForEntity:

    同GET请求一样,返回的是ResponseEntity<T>对象,其中T为请求相应的body的类型。

    唯一不同的是request可以是普通对象,也可以是HttpEntity对象。

    RestTemplate rt = new RestTemplate();

    User user1 = new User("jason",26);

    User user2 = rt.getForObject(url,user1,User.class);


    也提供了三个不同的重载实现:

    1.postForEntity(String url,Object request,Class responseType,Object...uriVariables);

    2.postForEntity(String url,Object request,Class responseType,Map uriVariables);

    3.postForEntity(URI url,Object request,Class responseType);


    第二种:postForObject:

    1.postForObject(String url,Object request,Class responseType,Object...uriVariables);

    2.postForObject(String url,Object request,Class responseType,Map uriVariables);

    3.postForObject(URI url,Object request,Class responseType);

    第三种:postForLocation:

    该方法实现了以POST请求提交资源,并返回新资源的URI对象,比如:

    User user = new User("jason",26);

    URI responseURI = restTemplate.postForLocation(url,user,);

    三种重载方法:

    1.postForLocation(String url,Object request,Object...uriVariables);

    2.postForLocation(String url,Object request,Map uriVariables);

    3.postForLocation(URI url,Object request);

    PUT请求:

    在RestTemaplate中,对PUT请求可以通过put方法进行调用。put方法返回值是void.

    三种不同的重载方法:

    put(String url,Object request,Object...urlVariable);

    put(String url,Object request,Map urlVariable);

    put(URI uri,Object request);


    DELETE请求:

    返回值为void.

    delete(String url,Object...urlVariable);

    delete(String url,Map urlVariable);

    delete(URI uri,);


  • 相关阅读:
    Docker----mysql数据持久化
    Docker-----容器数据卷
    Docker-----制造自己的镜像
    Docker----常用命令(镜像和容器的常用命令)
    Docker----阿里云镜像加速
    Docker概述
    com.aliyuncs.exceptions.ClientException: InvalidVersion : Specified parameter Version is not valid.
    夜神模拟器的使用踩坑--adb devices无法连接设备
    python利用smtplib模块发送邮件
    appium环境安装说明
  • 原文地址:https://www.cnblogs.com/whx20100101/p/9816736.html
Copyright © 2011-2022 走看看