前言

最近做微服务架构的项目,在用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服务调用请求方式及参数总结相关推荐

  1. feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)

    前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...

  2. SpringCloud 中 Feign 调用添加 Oauth2 Authorization Header

    SpringCloud 中 Feign 调用添加 Oauth2 Authorization Header SpringCloud 中通过 Feign 调用其他服务,当服务使用 Oauth2 授权的时候 ...

  3. SpringCloud 中 Feign 核心原理,简单易懂!

    目录 SpringCloud 中 Feign 核心原理 Feign远程调用的基本流程 Feign 远程调用的重要组件 Feigh 远程调用的执行流程 SpringCloud 中 Feign 核心原理 ...

  4. SpringCloud 中Feign原理(图解)

    1 SpringCloud 中Feign原理 1.1 Feign简介 Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端.Spring Clou ...

  5. Spring Cloud微服务之Feign服务调用(十一)

    Feign服务调用 一.Feign简介 基本概念 二.实现服务调用 1.编写删除源文件接口 2.在service模块添加pom依赖 3.在调用端(service_user)的启动类添加注解 4.新建一 ...

  6. JSP中get和post请求方式的区别及乱码解决方法

    JSP中get和post请求方式的区别及乱码解决方法 get提交方式:默认method="get" 和 地址栏.超链接请求方式默认都属于get提交方式 form表单的method属 ...

  7. 配置springcloud中eureka服务访问时需要用户名密码

    配置springcloud中eureka服务访问时需要用户名密码 1.application.yml中配置使用用户名密码登录链接: eureka:client:service-url:defaultZ ...

  8. SpringCloud中Feign进行服务调用 java.io.IOException: too many bytes written 问题解决

    问题描述 Spring Cloud 中通过 Feign 调用微服务时,报错:java.io.IOException: too many bytes written 问题来源 在 Feign 调用拦截器 ...

  9. 解决SpringBoot+SpringCloud中feign调用服务传递参数为MultipartFile的问题

    文章目录 前言 一.前期说明 二.使用步骤 1.引入maven依赖 2.新建feign的配置类 2.feign客户端 3.被调用的服务的Controller 4.第三方服务远程调用主服务传递Multi ...

最新文章

  1. GridView:根据单元格的值给单元格着色
  2. sql数据库连接不上本地数据库的解决办法
  3. C#LeetCode刷题-设计
  4. MySQL null与not null和null与空值‘‘的区别
  5. 骁龙855加持!OPPO Reno正面照揭晓:边框窄得吓人
  6. 你知道“借鸡生蛋”吗?学会这个方法,没钱没人脉你也可以创业
  7. 开发者应当熟知的 C# 序列化和反序列化
  8. c++ stl string char* 向 string 转换的问题
  9. 记录一次不同接口之间并发导致的生产问题
  10. python-gui-pyqt5的使用方法-1
  11. PHP笔记(CSS篇)
  12. CDA LEVELⅠ2021最新模拟题一(全网最详细有答案)
  13. 网页中的字体对应的word字体大小对照表
  14. win10计算机管理删除卷,win10系统删除卷或驱动器分区的方法
  15. windows10电脑发现不了网络计算机,Win10电脑无法开启网络发现怎么解决?
  16. 2021-10-26 模电共射放大电路部分
  17. 美化Hexo 个人博客
  18. 一周企业财报 | 汉高、中通、格林酒店、宜人金科、宝尊、维他奶等7家企业发布业绩...
  19. CPU和内存的电路设计09-计数器的内部电路实现
  20. PROBLEM F: 切煎饼

热门文章

  1. 树形菜单 php,简单的树形菜单_php
  2. SQL优化万能公式:5 大步骤 + 10 个案例
  3. JavaFx 实用小工具超 60+ 大集合
  4. 想让好友不停地擦手机屏幕?微信头像这样设置就行了!
  5. 使用 EasyPOI 优雅导出Excel模板数据(含图片)
  6. 盘点几种MySQL复制的解决方案和常见的错误理解
  7. Dubbo 管理能力弱?Dubbo Admin 发布 v0.1 助力服务管理能力!
  8. linux作业控制三个,10个linux 作业控制的bash 脚本实例
  9. 中石油《计算机应用基础》,中石油华东《计算机应用基础》2018年秋学期在线作业(一).doc...
  10. 帝国cms商城微信小程序之后台sku多规格的开发说明