当前位置: 首页 > news >正文

网上做代销上哪个网站/友情链接2598

网上做代销上哪个网站,友情链接2598,东营网站建设app开发,官方网站下载官方版本本节我们来探讨如何使用Feign构造多参数的请求。笔者以GET以及POST方法的请求为例进行讲解,其他方法(例如DELETE、PUT等)的请求原理相通,读者可自行研究。 GET请求多参数的URL 假设我们请求的URL包含多个参数,例如http…

本节我们来探讨如何使用Feign构造多参数的请求。笔者以GET以及POST方法的请求为例进行讲解,其他方法(例如DELETE、PUT等)的请求原理相通,读者可自行研究。

GET请求多参数的URL

假设我们请求的URL包含多个参数,例如http://microservice-provider-user/get?id=1&username=张三 ,要如何构造呢?

我们知道,Spring Cloud为Feign添加了Spring MVC的注解支持,那么我们不妨按照Spring MVC的写法尝试一下:

@FeignClient("microservice-provider-user")
public interface UserFeignClient {@RequestMapping(value = "/get", method = RequestMethod.GET)public User get0(User user);
}

然而,这种写法并不正确,控制台会输出类似如下的异常。

feign.FeignException: status 405 reading UserFeignClient#get0(User); content:
{"timestamp":1482676142940,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/get"}

由异常可知,尽管我们指定了GET方法,Feign依然会使用POST方法发送请求。

正确写法如下:

(1) 方法一

@FeignClient(name = "microservice-provider-user")
public interface UserFeignClient {@RequestMapping(value = "/get", method = RequestMethod.GET)public User get1(@RequestParam("id") Long id, @RequestParam("username") String username);
}

这是最为直观的方式,URL有几个参数,Feign接口中的方法就有几个参数。使用@RequestParam注解指定请求的参数是什么。

(2) 方法二

多参数的URL也可使用Map来构建。当目标URL参数非常多的时候,可使用这种方式简化Feign接口的编写。

@FeignClient(name = "microservice-provider-user")
public interface UserFeignClient {@RequestMapping(value = "/get", method = RequestMethod.GET)public User get2(@RequestParam Map<String, Object> map);
}

在调用时,可使用类似以下的代码。

public User get(String username, String password) {HashMap<String, Object> map = Maps.newHashMap();map.put("id", "1");map.put("username", "张三");return this.userFeignClient.get2(map);
}

POST请求包含多个参数

下面我们来讨论如何使用Feign构造包含多个参数的POST请求。假设服务提供者的Controller是这样编写的:

@RestController
public class UserController {@PostMapping("/post")public User post(@RequestBody User user) {...}
}

我们要如何使用Feign去请求呢?答案非常简单,示例:

@FeignClient(name = "microservice-provider-user")
public interface UserFeignClient {@RequestMapping(value = "/post", method = RequestMethod.POST)public User post(@RequestBody User user);
}

TIPS

(1) 本节相关代码,详见本书配套代码中的microservice-provider-user-multiple-params项目和microservice-consumer-movie-feign-multiple-params项目。

(2) 除本节讲解的方式外,我们也可编写自己的编码器来构造多参数的请求,但这种方式编码成本较高,代码可重用性较低。故此,本书不再赘述。

拓展阅读

(1) 希望Feign能够支持参数请求使用POJO的Issue:https://github.com/spring-cloud/spring-cloud-netflix/issues/1253
(2) 建议使用Feign原生的注解的Issue:https://github.com/spring-cloud/spring-cloud-netflix/issues/659
(3) 建议增强Feign的功能:https://github.com/spring-cloud/spring-cloud-netflix/issues/1360
(4) 建议支持可选的Request Body(目前Feign当POST一个null时,会报异常):https://github.com/spring-cloud/spring-cloud-netflix/issues/1047

本文链接: http://www.itmuch.com/spring-cloud-sum/feign-multiple-params/
**版权声明: **本博客由周立创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

http://www.lbrq.cn/news/1241461.html

相关文章:

  • 一个企业做网站的目的/域名备案查询
  • 用html做企业门户网站/企业qq
  • 网站建设佰金手指科捷一/北京网站建设开发公司
  • 在线营销型网站/优化网站排名费用
  • 深圳住房和建设局网站富士锦园/开平网站设计
  • 哪类型网站容易做/网站排名优化制作
  • 深圳网站建设者/seo怎么收费的
  • 如何建设网站app/网站制作工具
  • 个人做网站要注意什么/手机百度提交入口
  • 东莞公司网站制作/个人网站建设
  • 深圳哪家做网站好/社群营销的具体方法
  • 长宁区网站设计建设/推广方案策划
  • 上海的广告公司网站建设/长沙做引流推广的公司
  • 顺德高端网站/西安百度关键词优化
  • 杭州企业网站建设 哪里好/seo搜索优化
  • 东莞深圳网站建设/seo l
  • 电白网站建设公司/网络营销推广的基本手段
  • 网站制作 西安/民生热点新闻
  • 简述网站建设基本流程/如何推广品牌
  • phpcms v9网站建设入门/重庆网站排名提升
  • r语言做网站/关键词seo排名怎么选
  • 在线阅读网站开发教程/百度官方网平台
  • 香港空间做网站速度慢的解决方法/海外网络推广服务
  • 西城 网站公安备案/厦门seo推广外包
  • 信阳高端网站建设/网络营销师证书怎么考
  • 怎么个人网站设计/企业宣传标语
  • 电商网站怎么推广/网站客服系统
  • 网站维护好的方法/域名注册网站
  • 为什么网站不建议做充值功能/原版百度
  • 广东做网站的公司/百度竞价推广开户费用
  • 驾驶场景玩手机识别:陌讯行为特征融合算法误检率↓76% 实战解析
  • sqli-labs:Less-18关卡详细解析
  • 8.1IO进程线程——文件IO函数
  • 详解Python标准库之文件格式
  • 对于前端闭包的详细理解
  • Git基础命令大全