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

知名企业文化淘宝seo优化排名

知名企业文化,淘宝seo优化排名,学做预算有网站吗,零代码开发平台Feign 调用为何POST不支持同时传入多个SpringQueryMap对象,但是GET方法就支持? 1.1 问题背景1.2 原因分析1.3 修复方案1.3.1 修复方案一 切换使用GET方法,可以试用多个SpringQueryMap注解 (测试实际不行)1.3.2 修复方案…

Feign 调用为何POST不支持同时传入多个SpringQueryMap对象,但是GET方法就支持?

    • 1.1 问题背景
    • 1.2 原因分析
    • 1.3 修复方案
      • 1.3.1 修复方案一 切换使用GET方法,可以试用多个`@SpringQueryMap`注解 (测试实际不行)
      • 1.3.2 修复方案二 使用POST方法并将两个参数合并后使用`@RequestBody`注解(未测试)
      • 1.3.3 修复方案二 使用POST方法并将两个参数合并后使用`@SpringQueryMap`注解(亲测可行)

1.1 问题背景

我们知道,在Feign接口中不支持@ModelAttribute 注解,可以试用@SpringQueryMap代替。

由于GET 请求参数的限制,因此,在某些情况会把查询接口使用POST方法。

但是当使用Feign接口调用POST方法,有多个对象参数的时候,如果这样使用会出现问题,第二个参数接受时候会为空。

/*** 异地查询日志服务*/
@FeignClient(name = "remoteCallElasticsearchService", url = "${query-current-service-provider.prevBaseUrl}")
public interface RemoteCallElasticsearchService {/*** 异地调用日志查询服务* @param elkLogQueryParam 日志查询请求参数* @param myPageParam 分页参数* @return 日志查询结果*/@PostMapping(value = "/rpc-service/queryRemoteElkLogInfoPageList.do")Page<ElkLogResponseVO> queryRemoteElkLogInfoPageList(@SpringQueryMap ElkLogQueryParam elkLogQueryParam,@SpringQueryMap MyPageParam myPageParam);
}

1.2 原因分析

Feign 调用为何POST不支持同时传入多个SpringQueryMap对象,但是GET方法就支持?

  • Feign是一个声明式的HTTP客户端库,通常用于调用RESTful服务。
  • 在Feign中,Spring Cloud的@FeignClient注解通常用于定义和配置需要调用的目标服务。
  • Feign的设计是基于HTTP方法和RESTful风格的,因此它在处理HTTP请求时遵循了RESTful的规范。
  • 在HTTP中,GET请求通常允许将多个查询参数附加到URL中,因此您可以轻松地使用多个@SpringQueryMap对象作为参数。这是因为GET请求的参数是直接附加到URL上的,没有请求体,所以它们可以并存。
  • 而POST请求通常用于发送复杂的数据,通常使用请求体来传递参数。
  • 因此,在Feign中,通过@RequestBody@RequestPart等注解,您可以将数据作为请求体传递给POST请求。
  • 但是,Feign的设计不直接支持将多个@SpringQueryMap对象传递给POST方法,因为POST请求通常不应该在请求体中包含大量查询参数,而应该将它们包含在请求体中,以进行更复杂的操作。
  • 如果您需要将多个参数传递给POST方法,通常的做法是将它们合并为一个对象,然后将该对象作为请求体发送,而不是使用多个@SpringQueryMap对象。
  • 这可以提高代码的可读性和维护性,并符合RESTful设计的最佳实践。
  • 要传递多个查询参数,可以将它们包装在一个对象中,然后将该对象作为请求体传递给POST方法。
  • 例如,您可以创建一个DTO(数据传输对象)来包含所有参数,然后将其传递给Feign的POST方法。
  • 在HTTP中,GET请求通常允许将多个查询参数附加到URL中,因此您可以轻松地使用多个@SpringQueryMap对象作为参数。这是因为GET请求的参数是直接附加到URL上的,没有请求体,所以它们可以并存。
  • Feign的设计不直接支持将多个@SpringQueryMap对象传递给POST方法,因为POST请求通常不应该在请求体中包含大量查询参数,而应该将它们包含在请求体RquestBody中,以进行更复杂的操作。

1.3 修复方案

1.3.1 修复方案一 切换使用GET方法,可以试用多个@SpringQueryMap注解 (测试实际不行)

  • 支持,两个参数都可以正确获取到
/*** 异地查询日志服务*/
@FeignClient(name = "remoteCallElasticsearchService", url = "${query-current-service-provider.prevBaseUrl}")
public interface RemoteCallElasticsearchService {/*** 异地调用日志查询服务* @param elkLogQueryParam 日志查询请求参数* @param myPageParam 分页参数* @return 日志查询结果*/@GetMapping(value = "/rpc-service/queryRemoteElkLogInfoPageList.do")Page<ElkLogResponseVO> queryRemoteElkLogInfoPageList(@SpringQueryMap ElkLogQueryParam elkLogQueryParam,@SpringQueryMap MyPageParam myPageParam);
}

1.3.2 修复方案二 使用POST方法并将两个参数合并后使用@RequestBody注解(未测试)

/*** 异地查询日志服务*/
@FeignClient(name = "remoteCallElasticsearchService", url = "${query-current-service-provider.prevBaseUrl}")
public interface RemoteCallElasticsearchService {/*** 异地调用日志查询服务* @param elkLogQueryParam 日志查询请求参数* @param myPageParam 分页参数* @return 日志查询结果*/@PostMapping(value = "/rpc-service/queryRemoteElkLogInfoPageList.do")Page<ElkLogResponseVO> queryRemoteElkLogInfoPageList(@RequestBody ElkLogQueryWithPageParam elkLogQueryWithPageParam ,);
}

1.3.3 修复方案二 使用POST方法并将两个参数合并后使用@SpringQueryMap注解(亲测可行)

/*** 异地查询日志服务*/
@FeignClient(name = "remoteCallElasticsearchService", url = "${query-current-service-provider.prevBaseUrl}")
public interface RemoteCallElasticsearchService {/*** 异地调用日志查询服务* @param elkLogQueryParam 日志查询请求参数* @param myPageParam 分页参数* @return 日志查询结果*/@PostMapping(value = "/rpc-service/queryRemoteElkLogInfoPageList.do")Page<ElkLogResponseVO> queryRemoteElkLogInfoPageList(@SpringQueryMap ElkLogQueryWithPageParam elkLogQueryWithPageParam ,);
}
http://www.hkea.cn/news/599/

相关文章:

  • 软件平台是什么意思产品seo基础优化
  • 家装网站建设多少钱企业关键词大全
  • 深圳html5网站开发百度网盘客服在线咨询
  • 上海某家具网站建设方案站长工具的网址
  • 网站建设分项报价表快速seo关键词优化方案
  • 新手学做网站 cs5 pdf免费发布产品的网站
  • 网站如何在百度搜索百度快照客服人工电话
  • 旅游网站开发设计与实现二十个优化
  • 网站关键词字数限制seo分析seo诊断
  • 长沙手机app网站开发东莞网络公司网络推广
  • 北京 网站建设600网站代理公司
  • 广州门户网站建设百度高级搜索页面的网址
  • 白酒网站模版手机怎么自己制作网页
  • 湛江的高铁站建在哪里免费的关键词挖掘工具
  • seo专业为网站建设网络推广营销网
  • 网站建设需求说明书百度快速seo优化
  • 德阳网站开发熊掌号郑州seo代理外包公司
  • 聊城网站建设基本流程重庆seo网站运营
  • h5〃wordpress优化师是一份怎样的工作
  • 漯河市城市建设投资公司网站软文推广文章范文1000
  • 淘宝网页长春网站seo公司
  • 网站服务器一个多少钱免费文件外链网站
  • 网站 什么语言开发的网站加速
  • 负责网站开发的岗位站长工具seo查询软件
  • 自己做网站能赚钱吗企业推广文案
  • 网站怎么容易被百度收录链接买卖
  • 做网站公司青岛磁力猫引擎入口
  • 商业计划书ppt模板免费下载网站seo诊断分析报告
  • 做ppt的网站叫什么怎么做百度网页
  • 觉 网站seo是一种利用搜索引擎的