博客
关于我
03 Feign发送Post请求
阅读量:226 次
发布时间:2019-03-01

本文共 2119 字,大约阅读时间需要 7 分钟。

Feign框架处理不同类型请求参数

1 URL传递参数

1.1 服务提供者

在Spring Boot应用中,可以通过@RequestParam注解来接收URL传递的参数。示例代码如下:

@PostMapping("/post")public String test01(@RequestParam String name) {    return name;}

同样,可以接收Map类型的参数:

@PostMapping("/post/map")public String test02(@RequestParam Map
map) { return map.toString();}

1.2 客户端

使用Feign客户端,可以通过@RequestLine注解来定义请求URL,并使用@Param注解来接收URL参数。示例代码如下:

@RequestLine("POST /feign/provider/post?name={name}")String invokeTest01(@Param(value = "name") String name);

同样,可以接收Map类型的参数:

@RequestLine("POST /feign/provider/post/map")String invokeTest02(@QueryMap Map
map);

1.3 测试

测试代码如下:

@Testpublic void test01() {    String response = client.invokeTest01("wade");    System.out.println(response);}
@Testpublic void test02() {    Map
map = new HashMap<>(); map.put("name", "wade"); map.put("age", 28); String response = client.invokeTest02(map); System.out.println(response);}

2 Body参数

2.1 演示

使用@RequestBody注解来接收JSON格式的请求体。示例代码如下:

@PostMapping("/post/body")public String test03(@RequestBody User user) {    return user.toString();}

2.2 API讲解

  • Body注解:用于定义请求体的结构,支持JSON格式数据。需要设置Content-Type请求头参数。
  • Headers注解:用于定义请求头,支持自定义设置。

测试代码如下:

@Testpublic void test03() {    User user = new User();    user.setAge(13);    user.setName("Wade");    String response = client.invokeTest03(user);    System.out.println(response);}

3 Body和URL参数结合使用

3.1 服务提供者

同时接收URL参数和请求体参数。示例代码如下:

@PostMapping("/post/bodyAndUrl")public String test04(@RequestParam Map
map, @RequestBody User user) { return map.toString();}

3.2 客户端

使用@Body注解和@Headers注解来定义请求体和请求头。示例代码如下:

@RequestLine("POST /feign/provider/post/bodyAndUrl")@Body("{body}")@Headers({"content-type: application/json"})String invokeTest04(@QueryMap Map
map, @Param("body") User user);

3.3 测试

测试代码如下:

@Testpublic void test04() {    User user = new User();    user.setAge(13);    user.setName("Wade");    Map
map = new HashMap<>(); map.put("name", "kobe"); map.put("age", 28); String response = client.invokeTest04(map, user); System.out.println(response);}

通过以上方法,可以在Feign框架中高效地处理不同类型的请求参数。

转载地址:http://oprv.baihongyu.com/

你可能感兴趣的文章
Python 依赖管理的革新——Poetry 深度解析
查看>>
python 保留精度及增加去除数字的千位分隔符(金额化数字)
查看>>
python 倒计时 9,8,7,。。。。。。0
查看>>
Python 入门开发学习笔记之数据的增删改查
查看>>
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
查看>>
Python 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 内置 sum 函数 vs. for 循环性能
查看>>
python 内置slice的用法
查看>>
Python 内置时间模块
查看>>
python 内部如何实现命名元组?
查看>>
Python 写Android App性能:入门到高级
查看>>
python 写入json数据到数据库
查看>>
Python 出现 TypeError: ‘encoding‘ is an invalid keyword argument for this function 解决方法
查看>>
python 出现 TypeError: ‘list‘ object is not callable 的解决方法
查看>>
python 函数1
查看>>
python 函数学习
查看>>
Python 函数随笔 map()函数,lambda自定义函数
查看>>