【问题标题】:feign-okhttp post request with url query parameters带有url查询参数的feign-okhttp post请求
【发布时间】:2018-10-15 13:10:09
【问题描述】:

我目前在我的项目中已将 httpurlconnection 替换为 feign-okhttp。我使用以下版本:

    <dependency>
        <groupId>io.github.openfeign</groupId>
        <artifactId>feign-okhttp</artifactId>
        <version>9.6.0</version>
    </dependency>

但我在发布此网址时遇到问题:“http://gclife-platform-service:20000/v1/user/login/log?userId=ea9dd2f707a54b11b03193c35b2ad3a4&error=SUCCESS” 服务器端的日志如下:

Received [1.1
cache-control: no-cache
...

但是“收到[1.1”应该是:

Received [POST v1/user/login/log?userId=ea9dd2f707a54b11b03193c35b2ad3a4&error=SUCCESS HTTP/1.1 

所以这导致了解析问题。

2018-05-05 10:10:04.076 DEBUG 6525 --- [io-20000-exec-9] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens

当我发布没有像“http://gclife-platform-service:20000/v1/message/sms/verifycode/check”这样的查询参数的网址时,我得到了:

Received [POST /v1/message/sms/verifycode/check HTTP/1.1

这是正确的结果。 我怎样才能得到这样的正确日志?任何人都可以帮忙吗?谢谢。

【问题讨论】:

    标签: spring-boot spring-cloud okhttp3 spring-cloud-feign


    【解决方案1】:

    当您尝试在未启用 https 的端点上执行来自客户端的 https 请求时,可能会发生此异常。当服务器需要原始数据时,客户端将加密请求数据。

    在您的客户端网址中将 https:// 更改为 http://。

    【讨论】:

    【解决方案2】:

    我犯了同样的错误。 打印 Feign 标头并发现 Content-Length 是重复定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-22
      • 2023-02-10
      • 2018-02-18
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多