对接第三方接口遇到的坑

前言:我的照片模组需要调用运管平台的照相馆接口.我这边仅仅是做请求的转发.没有任何的业务逻辑.
因此接口出了问题肯定是提供方有错误(实际上也确实如此!)
首先确保sdk提供方真的把jar包上传到了云仓库!!!其次,确保联调的时候人家真的开启了服务!

第一个坑:nacos没有注册发现到对方的服务

在联调的过程中发现没有调到对方的服务,报错如下:

  "message": "com.netflix.client.ClientException: Load balancer does not have available server for client: gov-mo-operation",

解决方案:修改nacos的配置使两个服务位于同一个命名空间下的同一个group

 nacos:
      discovery:
        enabled: true
        server-addr: whale-nacos.c9c9fec35c4094d67902085a73d9095fb.cn-hangzhou.alicontainer.com:80
        namespace: 1b4a8a71-11e1-44cd-90bd-9e6f119d9e77
        group: DEFAULT_GROUP

第二个坑:get请求过去变成了post请求

这个问题的主要的原因就是Feign默认使用的连接工具实现类,发现只要你有对应的body体对象,就会强制把GET请求转换成POST请求
解决方案:
方案一:调用参数中增加了一个@RequestParam(“name”) 注解,这主要是因为,Feign源码在解析含有@FeignClient注解的接口的时候,创建的代理对象在去解析含有@RequestParam注解的参数时,会将该参数增强到url上,而不是作为body传递
源码分析:https://blog.csdn.net/zcswl7961/article/details/106328174/
方案二:更换Apache的HttpClient
在Feign的配置项中加入

feign:
  httpclient:
    enabled: true

同时使用下面两个依赖:

		<dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.9</version>
        </dependency>
        <dependency>
            <groupId>io.github.openfeign
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值