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,);


  • 相关阅读:
    C#执行sql文件
    "C:Program FilesInternet Exploreriexplore.exe" -extoff 无加载项启动IE 浏览器打开时全屏模式
    sql server备份与还原 sql语句
    触摸屏\串口服务器\串口
    USB串行端口
    选取所有表单元素
    C# Bitmap类型与Byte[]类型相互转化
    本文介绍C# BitmapData
    C#多线程学习(六) 互斥对象
    C# List 复制克隆副本
  • 原文地址:https://www.cnblogs.com/whx20100101/p/9816736.html
Copyright © 2011-2022 走看看