Gateway加解密偶尔HTTP method names must be tokensConnection prematurely closed BEFORE response问题

30 篇文章 0 订阅
9 篇文章 0 订阅

背景

        在上篇博客中使用了RSA配合AES完成了接口的加解密操作,但是在实际测试过程中,偶尔会产生`HTTP method names must be tokens`、`Connection prematurely closed BEFORE response` 的问题

上篇文章:Gateway 接口参数加解密_邪神大叔的博客-CSDN博客https://blog.csdn.net/qq_17213067/article/details/127859326

解决之路

        百思不得其解,Google、百度都翻烂了,还是解决不了,说什么改请求头大小啊之类的,是无用的,比如:SpringBoot:Invalid character found in method name. HTTP method names must be tokens_Moshow郑锴的博客-CSDN博客_invalid character found in method

再如:header参数Content-length引发的问题—http长连接的理解 - 简书 (jianshu.com)

        后来,在机缘巧合之下在stackoverflow看到了在Gateway删除请求头的一些思路,然后在尝试N多次之后,发现解决了。

        

解决之道

Dockerfile

#依赖的基础镜像jdk8
FROM openjdk:8u275-slim
#需要暴露出去的端口,也就是我项目的端口
#EXPOSE 8000
#作者信息
MAINTAINER xxx
ENV TZ GMT+8
ENV JAR_NAME nxx.jar
ADD /target/$JAR_NAME $JAR_NAME
ENV JAVA_OPTS -Dname=$JAR_NAME -server -Xmx512m -Xms512m -Xmn256m -Xss256k -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Duser.timezone=GMT+8
#启动容器之后,默认的运行命令
#ENTRYPOINT java $JAVA_OPTS -jar $JAR_NAME
# 解决:Connection prematurely closed BEFORE response,步骤1
ENTRYPOINT java $JAVA_OPTS -Dreactor.netty.pool.leasingStrategy=lifo -jar $JAR_NAME

bootstrap.xml

spring:
  cloud:
    # 解决:Connection prematurely closed BEFORE response,步骤2
    gateway:
      # 解决:HTTP method names must be tokens 不知道啥原因
      filter:
        remove-hop-by-hop:
          headers: Connection

后续

        至今还不知道为什么,但是就是解决了,希望路过大神解答一下,指教指教小弟。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值