首页 > 其他 > 详细

gateway遇到请求头Expect=100-continue 一直卡住

时间:2020-04-25 23:32:01      阅读:212      评论:0      收藏:0      [点我收藏+]

前两天项目遇到个php请求后台服务,然后一直卡住返回不了参数的问题,

postman请求正常,但是php用curl post请求就会一直卡住,

php程序员抓破脑袋也没想出来到底是什么情况,最后看了下请求头发现多了一个Expect=100-continue,

原来在请求超过1024字节的数据时,curl会先发送个请求头,询问服务器是否接受请求。

但gateway并没有返回应答,所以就一直卡住。

解决方法有很多,比如gateway配置路由中删除请求头,php主动设置Expect=""。

我就简单粗暴一点直接在代码中把Expect清掉了。

@Component
public class MyRequestGlobalFilter implements GlobalFilter, Ordered {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ServerHttpRequest request = exchange.getRequest().mutate()
                .headers(httpHeaders -> {
                    httpHeaders.remove("Expect");
                })
                .build();
                
        return chain.filter(exchange.mutate()
                .request(request.mutate()
                        .build()).build());
    }

    @Override
    public int getOrder() {
        return -1000;
    }
}

 

 

贴一个讲的比较明了的文章

https://blog.csdn.net/qq_25933249/article/details/102826525

gateway遇到请求头Expect=100-continue 一直卡住

原文:https://www.cnblogs.com/moerjiana/p/12776170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!