IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> RestTemplate (java) 学习 -> 正文阅读

[Java知识库]RestTemplate (java) 学习

RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具

	还有比较常用的httpClient,但是编码复杂,所以学习下即可,建议掌握restTemplate

一:编写配置 RestTemplateConfig

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

二:学习示例

启动postman 请求 /test/1 传入不同参数,以查看不同方式效果
import cn.study.algorithm.enty.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("test")
public class RestTemplateController {

    @Autowired
    private RestTemplate restTemplate;


    @GetMapping("1")
    public String test(@RequestParam("id")String id){

        // post 请求 测试参数
        User user=new User();
        user.setUserName("test1");
        user.setPassword("123");
        user.setAge(22);

        // post请求
        if(id.equals("2")){

            // restTemplate.postForObject() 响应为 指定类型
            /*String url="http://localhost:8080/test/2";
            User forObject = restTemplate.postForObject(url,user,User.class);
            return "1 restTemolate->result:"+forObject;*/

            // restTemplate.postForEntity() 响应为 ResponseEntity
            String url="http://localhost:8080/test/2";
            Map<String,String> map=new HashMap<>();
            map.put("userName","zhangsan");
            map.put("password","123");
            map.put("age","23");
            ResponseEntity<User> userResponseEntity = restTemplate.postForEntity(url, user, User.class);
            return "1 restTemolate->result:"+userResponseEntity;

            // get请求
        }else if(id.equals("3")){
            // restTemplate.getForObject() 响应为 指定类型
            /*String url="http://localhost:8080/test/3?username={1}&age={2}";
            User forObject = restTemplate.getForObject(url, User.class,"test3",5);
            return "1 restTemolate->result:"+forObject;*/

            // restTemplate.getForEntity() 响应为 ResponseEntity
            String url="http://localhost:8080/test/3?username={1}&age={2}";
            ResponseEntity<User> haha = restTemplate.getForEntity(url, User.class, "haha", 3);
            return "1 restTemolate->result:"+haha;

            // 通用 restTemplate.exchange()
        }else if(id.equals("4")){
            String url="http://localhost:8080/test/2";
            HttpEntity<User> httpEntity=new HttpEntity<>(user);
            ResponseEntity<User> exchange = restTemplate.exchange(url, HttpMethod.POST, httpEntity, User.class);
            return "exchange->"+exchange;
        }else{
            RestTemplate restTemplate=new RestTemplate();
            ResponseEntity<String> forEntity = restTemplate.getForEntity("https://www.baidu.com/", String.class);
            System.out.println(forEntity);
            return forEntity.toString();
        }
    }

    // post 请求测试
    @PostMapping("2")
    public User test2(@RequestBody User user){
        System.out.println("我是接口2 收到信息为-》"+user);
        user.setUserName("test2");
        return user;
    }

    // get 请求测试
    @GetMapping("3")
    public User test3(@RequestParam("username")String username,@RequestParam("age")Integer age){
        System.out.println("我是接口3 收到信息为-》"+username);
        User user=new User();
        user.setUserName(username);
        user.setAge(age);
        return user;
    }
}

User.enty

@Data
public class User {
    private String userName;
    private String password;
    private Integer age;
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:35:37  更:2022-03-21 20:37:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:54:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码