博客
关于我
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/

你可能感兴趣的文章
Pandas df.iterrows() 并行化
查看>>
Pandas drop_duplicates 方法不适用于包含列表的数据框
查看>>
pandas groupby 和过滤器
查看>>
pandas GROUPBY+变换和多列
查看>>
pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?
查看>>
Pandas matplotlib 无法显示中文
查看>>
pandas PIVOT_TABLE保持索引
查看>>
Pandas Plots:周末的单独颜色,x 轴上漂亮的打印时间
查看>>
pandas to_latex() 转义数学模式
查看>>
Pandas | 频数统计很简单,但这5 种技巧你使用过吗?
查看>>
Pandas 中文官档 ~ 基础用法4
查看>>
pandas 中的 for 循环真的很糟糕吗?我什么时候应该关心?
查看>>
Pandas 中的多索引旋转
查看>>
Pandas 中的日期范围
查看>>
pandas 中的时间序列箱线图
查看>>
Pandas 使用指南
查看>>
pandas 分组并使用最小值更新
查看>>
pandas 叶上的热图
查看>>
pandas 均值(mean), 均值填充NA(fill_na)
查看>>
Pandas 对数据框的布尔比较
查看>>