• 微服务——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,);


  • 相关阅读:
    feign.RetryableException: Read timed out
    字段重复性校验
    时间的问题总结
    Maven使用mvn命令生成一个spring mvc的web项目
    Mac OS安装brew
    Docker部署Web应用到Tomcat
    Docker安装使用Oracle 11g
    Python 修改AD密码
    Let's Encrypt 证书 wget 报错
    dedecms获取指定栏目下的文章数量
  • 原文地址:https://www.cnblogs.com/whx20100101/p/9816736.html
Copyright © 2020-2023  润新知