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

你可能感兴趣的文章
Plotly (Python) 子图:填充构面和共享图例
查看>>
Plotly 中的行悬停文本
查看>>
Plotly 停用 x 轴排序
查看>>
Plotly 域变量解释(多图)
查看>>
Plotly 绘制表面 3D 未显示
查看>>
Plotly-Dash 存在未知问题并创建“加载依赖项时出错“;通过使用 Python-pandas.date_range
查看>>
Plotly-Dash:如何过滤具有多个数据框列的仪表板?
查看>>
Plotly:如何为 x 轴上的时间序列设置主要刻度线/网格线的值?
查看>>
Plotly:如何从 x 轴删除空日期?
查看>>
Plotly:如何从单条迹线制作堆积条形图?
查看>>
Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
查看>>
Plotly:如何使用 Plotly Express 组合散点图和线图?
查看>>
Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
查看>>
Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
查看>>
Plotly:如何使用 updatemenus 更新一个特定的跟踪?
查看>>
Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
查看>>
Plotly:如何向烛台图添加交易量
查看>>
Plotly:如何在 plotly express 中找到趋势线的系数?
查看>>
Plotly:如何在桑基图中设置节点位置?
查看>>
Plotly:如何处理重叠的颜色条和图例?
查看>>