gateway遇到請求頭Expect=100-continue 一直卡住


前兩天項目遇到個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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM