SpringCloud中Feign服务调用请求方式及参数总结
前言
最近做微服务架构的项目,在用feign来进行服务间的调用。在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的。在此进行一下总结记录。以下通过分为三种情况说明,无参数,单参数,多参数。每种情况再分get和post两种请求方式进行说明。这样的话,6种情况涵盖了feign调用的所有情况。
有个建议就是为了保证不必要的麻烦,在写feign接口的时候,与我们的映射方法保持绝对一致,同时请求方式,请求参数注解也都不偷懒的写上。如果遵循这种规范,可以避开90%的调用错误。
无参情况
无参情况就是说我们的方法内不接收参数。
Get请求
当我们只写RequestMapping,而不指定RequestMethod的时候。默认的method为一个get请求。
@RequestMapping("/noArgs/getDemo")public void noArgsGetDemo();
Post请求
@RequestMapping(value = "/noArgs/postDemo",method = RequestMethod.POST)public void noArgsPostDemo();
也可以直接使用PostMapping
@PostMapping(value = "/noArgs/postDemo")public void noArgsPostDemo();
单个参数的情况
方法内只有一个参数
Get请求
get请求方式接参,只能使用RequestParam注解
@RequestMapping(value = "/singleArg/getDemo")public void singleArgGetDemo(@RequestParam String name);
不写RequestMethod注解,默认就是get请求。
Post请求
post请求方式接参,可以使用三种方式,一种是不写,一种是RequestParam,一种是RequestBody。
RequestParam
先说说RequestParam这种方式。需要指明method,如果不指明则和上方一样了。默认是get。
@RequestMapping(value = "/singleArg/PostDemo",method = RequestMethod.POST)public void singleArgPostDemo(@RequestParam String name);
RequestBody
一旦使用RequestBody这种方式,他就是post请求,不用写method了。
@RequestMapping(value = "/singleArg/PostDemo")public void singleArgPostDemo(@RequestBody String name);
这个注解就很强势了,你写post,不写或者写get都没用,不会生效的,只要有这个方式那他就是Post请求了。
啥也不写
@RequestMapping(value = "/singleArg/PostDemo")public void singleArgPostDemo(String name);
此时默认会在参数前加上RequestBody注解。然后就会变成Post请求。
多参
get请求
多个参数也是使用@RequestParam注解。
@RequestMapping(value = "/moreArgs/getDemo")public void moreArgGetDemo(@RequestParam String name,@RequestParam String sex);
使用了RequestParam注解,默认method就是get。
post请求
多个参数只能有一个是requestBody方式,其他应该使用requestParam方式。
@RequestMapping(value = "/moreArgs/postDemo")public void moreArgPostDemo(@RequestBody String name,@RequestParam String sex);
也可以全部使用RequestParam方式,但是要指定post。
@RequestMapping(value = "/moreArgs/postDemo",method = RequestMethod.POST)public void moreArgPostDemo(@RequestParam String name,@RequestParam String sex);
如果要是参数前,都没写注解,则会报错,因为会默认加上两个RequestBody。
总结
至此feign的请求方式就说明白了。
SpringCloud中Feign服务调用请求方式及参数总结相关推荐
- feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)
前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...
- SpringCloud 中 Feign 调用添加 Oauth2 Authorization Header
SpringCloud 中 Feign 调用添加 Oauth2 Authorization Header SpringCloud 中通过 Feign 调用其他服务,当服务使用 Oauth2 授权的时候 ...
- SpringCloud 中 Feign 核心原理,简单易懂!
目录 SpringCloud 中 Feign 核心原理 Feign远程调用的基本流程 Feign 远程调用的重要组件 Feigh 远程调用的执行流程 SpringCloud 中 Feign 核心原理 ...
- SpringCloud 中Feign原理(图解)
1 SpringCloud 中Feign原理 1.1 Feign简介 Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端.Spring Clou ...
- Spring Cloud微服务之Feign服务调用(十一)
Feign服务调用 一.Feign简介 基本概念 二.实现服务调用 1.编写删除源文件接口 2.在service模块添加pom依赖 3.在调用端(service_user)的启动类添加注解 4.新建一 ...
- JSP中get和post请求方式的区别及乱码解决方法
JSP中get和post请求方式的区别及乱码解决方法 get提交方式:默认method="get" 和 地址栏.超链接请求方式默认都属于get提交方式 form表单的method属 ...
- 配置springcloud中eureka服务访问时需要用户名密码
配置springcloud中eureka服务访问时需要用户名密码 1.application.yml中配置使用用户名密码登录链接: eureka:client:service-url:defaultZ ...
- SpringCloud中Feign进行服务调用 java.io.IOException: too many bytes written 问题解决
问题描述 Spring Cloud 中通过 Feign 调用微服务时,报错:java.io.IOException: too many bytes written 问题来源 在 Feign 调用拦截器 ...
- 解决SpringBoot+SpringCloud中feign调用服务传递参数为MultipartFile的问题
文章目录 前言 一.前期说明 二.使用步骤 1.引入maven依赖 2.新建feign的配置类 2.feign客户端 3.被调用的服务的Controller 4.第三方服务远程调用主服务传递Multi ...
最新文章
- GridView:根据单元格的值给单元格着色
- sql数据库连接不上本地数据库的解决办法
- C#LeetCode刷题-设计
- MySQL null与not null和null与空值‘‘的区别
- 骁龙855加持!OPPO Reno正面照揭晓:边框窄得吓人
- 你知道“借鸡生蛋”吗?学会这个方法,没钱没人脉你也可以创业
- 开发者应当熟知的 C# 序列化和反序列化
- c++ stl string char* 向 string 转换的问题
- 记录一次不同接口之间并发导致的生产问题
- python-gui-pyqt5的使用方法-1
- PHP笔记(CSS篇)
- CDA LEVELⅠ2021最新模拟题一(全网最详细有答案)
- 网页中的字体对应的word字体大小对照表
- win10计算机管理删除卷,win10系统删除卷或驱动器分区的方法
- windows10电脑发现不了网络计算机,Win10电脑无法开启网络发现怎么解决?
- 2021-10-26 模电共射放大电路部分
- 美化Hexo 个人博客
- 一周企业财报 | 汉高、中通、格林酒店、宜人金科、宝尊、维他奶等7家企业发布业绩...
- CPU和内存的电路设计09-计数器的内部电路实现
- PROBLEM F: 切煎饼
热门文章
- 树形菜单 php,简单的树形菜单_php
- SQL优化万能公式:5 大步骤 + 10 个案例
- JavaFx 实用小工具超 60+ 大集合
- 想让好友不停地擦手机屏幕?微信头像这样设置就行了!
- 使用 EasyPOI 优雅导出Excel模板数据(含图片)
- 盘点几种MySQL复制的解决方案和常见的错误理解
- Dubbo 管理能力弱?Dubbo Admin 发布 v0.1 助力服务管理能力!
- linux作业控制三个,10个linux 作业控制的bash 脚本实例
- 中石油《计算机应用基础》,中石油华东《计算机应用基础》2018年秋学期在线作业(一).doc...
- 帝国cms商城微信小程序之后台sku多规格的开发说明