返回顶部
首页 > 资讯 > 精选 >Feign远程调用参数里的内容丢失如何解决
  • 177
分享到

Feign远程调用参数里的内容丢失如何解决

2023-06-29 09:06:55 177人浏览 安东尼
摘要

这篇文章主要讲解了“Feign远程调用参数里的内容丢失如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Feign远程调用参数里的内容丢失如何解决”吧!Feign远程调用参数里面内容丢失

这篇文章主要讲解了“Feign远程调用参数里的内容丢失如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Feign远程调用参数里的内容丢失如何解决”吧!

Feign远程调用参数里面内容丢失

举个例子

服务A提供了如下接口(注意这里的参数url是一个地址):

@GetMapping("/getSample")public String getSample(@RequestParam String url){     //此处省略逻辑......}

服务B需要调用服务A的接口,调用如下:

sampleFeignClient.getSample("Http://www.xxx.com?name=dumas&age=18");

提出问题:此时调用服务A接口后,在A服务接收的方法体内,断点会发现后面的参数age=18会丢失。

问题的原因:Feign远程调用是使用HTTP协议的,可能是获取参数的时候,把参数url里面的内容当成了参数,所以直接舍弃了。

解决方法

服务B调用前,使用URLEncoder.encode(url,"UTF-8");

服务A获取参数后,使用URLDecoder.decode(url, "UTF-8");

Feign远程调用细节--丢失数据

同步调用

我这里只添加了header中的Cookie,当然也可以遍历header,把所有的都添加到新的请求,解决办法跟Gateway丢失请求头类似。

@Configurationpublic class FeignConfiguration {    //feign远程调用丢失请求头问题    @Bean("requestInterceptor")    public RequestInterceptor requestInterceptor(){        return template -> {            ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();            httpservletRequest request = attributes.getRequest();            String cookie = request.getHeader("Cookie");            template.header("Cookie",cookie);        };    }}

异步调用

当我们使用异步调用openfeign,上述代码就会报空指针,获取不到当前的请求。

我们先获取到当前请求,再分享给子线程

RequestAttributes attributes = RequestContextHolder.getRequestAttributes();CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {    RequestContextHolder.setRequestAttributes(attributes);    feign.doService();}, executor);

感谢各位的阅读,以上就是“Feign远程调用参数里的内容丢失如何解决”的内容了,经过本文的学习后,相信大家对Feign远程调用参数里的内容丢失如何解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Feign远程调用参数里的内容丢失如何解决

本文链接: https://lsjlt.com/news/323976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Feign远程调用参数里的内容丢失如何解决
    这篇文章主要讲解了“Feign远程调用参数里的内容丢失如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Feign远程调用参数里的内容丢失如何解决”吧!Feign远程调用参数里面内容丢失...
    99+
    2023-06-29
  • Feign远程调用参数里面内容丢失的解决方案
    目录Feign远程调用参数里面内容丢失举个例子解决方法Feign远程调用细节--丢失数据同步调用异步调用Feign远程调用参数里面内容丢失 举个例子 服务A提供了如下接口(注意这里的...
    99+
    2024-04-02
  • Feign远程调用Multipartfile参数如何处理
    今天小编给大家分享一下Feign远程调用Multipartfile参数如何处理的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-29
  • 解决SpringCloud Feign传对象参数调用失败的问题
    SpringCloud Feign传对象参数调用失败 不支持GET请求方式 使用Apache HttpClient替换Feign原生httpclient @...
    99+
    2024-04-02
  • feign参数过多导致调用失败的解决方案
    目录feign参数过多调用失败错误信息报这个错误的原因是因为给出了两种解决办法feign多参数传递踩坑记录场景现在的问题是解决方案feign参数过多调用失败 错误信息 JSON pa...
    99+
    2024-04-02
  • 如何解决Feign调用的GET参数传递的问题
    这篇文章主要介绍了如何解决Feign调用的GET参数传递的问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何解决Feign调用的GET参数传递的问题文章都会有所收获,下面我们一起来看看吧。需求在消费方服务通...
    99+
    2023-06-29
  • SpringCloud中的Feign远程调用接口传参失败问题
    目录Feign远程调用接口传参失败这是调用者这是feign的client这是被调者Feign远程调用的注意点定义的做远程调用的api接口service微服务中的Controller的...
    99+
    2024-04-02
  • Feign调用服务时丢失Cookie和Header信息的解决方案
    目录Feign调用服务丢失Cookie和Header信息服务调用方服务接受方Feign调用存在的问题①feign远程调用丢失请求头②异步调用Feign丢失上下文问题Feign调用服务...
    99+
    2024-04-02
  • 使用Feign远程调用时,序列化对象失败的解决
    Feign远程调用序列化对象失败 最近在搭建一个SpringCloud的微服务时,遇到了一个问题,在使用Feign远程调用时报错,返回对象没有无参构造方法,有其他的含参数的构造方法。...
    99+
    2024-04-02
  • 解决Feign调用的GET参数传递的问题
    目录需求思考GET方式请求①GET方式请求②GET方式请求③需求 ​ 在消费方服务通过GET方式,访问服务提供方的接口,需要传递多参数,拆分成多个参数的方式访问,不太适合用在该场景,...
    99+
    2024-04-02
  • 解决在微服务环境下远程调用feign和异步线程存在请求数据丢失问题
    目录一、无异步线程得情况下feign远程调用:1、登录拦截器:2.问题示例图:3.解决方法:解决方式(高亮部分):从总线中获取request数据放入子线程中二、异步情况下丢失上下文问...
    99+
    2024-04-02
  • 如何解决feign调用中文参数被encode编译的问题
    这篇文章主要介绍如何解决feign调用中文参数被encode编译的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Feign调用中文参数被encode编译原因在实现一个feign调用时使用了Post请求,并且拼接u...
    99+
    2023-06-29
  • 如何解决springcloud feign 首次调用100%失败的问题
    叙述 在高并发情况下发布应用时,经常会发现监控中有很多超时报错或者断路器打开,下图中可以看到监控情况,测试时也会偶现第一次feign调用出错,第二次就会恢复正常。 分析 大...
    99+
    2024-04-02
  • nginx反向代理请求参数丢失如何解决
    如果在使用nginx作为反向代理时发生了请求参数丢失的情况,可能是由于配置不正确或者代理服务器的限制导致的。以下是一些解决方法: ...
    99+
    2024-02-29
    nginx
  • 使用Feign远程调用时序列化对象失败怎么解决
    本篇内容介绍了“使用Feign远程调用时序列化对象失败怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Feign远程调用序列化对象失败...
    99+
    2023-06-20
  • 使用vue router路由传参刷新页面参数丢失如何解决
    本篇文章为大家展示了使用vue router路由传参刷新页面参数丢失如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。方法一:通过 params 传参路由配置如下:{  &n...
    99+
    2023-06-15
  • Feign如何使用protobuf的类作为参数调用
    目录feign客户端接口定义如下服务端接口实现如下在feign接口调用时feign客户端增加一个配置如下服务端增加一个配置如下不要加入版本这两天在把原来的项目迁移到spring cl...
    99+
    2024-04-02
  • win11开机远程调用失败如何解决
    开机远程调用失败可能由多种原因引起,以下是一些可能的解决方法:1. 确保网络连接正常:检查网络连接是否正常,确保网络连接稳定并且能够...
    99+
    2023-09-17
    win11
  • Feign远程调用传递对象参数并返回自定义分页数据的过程解析
    目录Feign介绍Feign测试1.在yml文件里面增加了配置信息2.在客户端pom.xml文件中引入的依赖(消费者端)3.服务调用端接口为4.服务调用端Service代码5.服务调...
    99+
    2024-04-02
  • 如何解决使用feign传递参数类型为MultipartFile的问题
    这篇文章主要介绍如何解决使用feign传递参数类型为MultipartFile的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!feign传递参数类型为MultipartFilefeign默认是不支持多媒体文件类型...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作