码迷,mamicode.com
首页 > 编程语言 > 详细

curl使用post方式访问Spring Cloud gateway报time out错误

时间:2020-01-12 11:21:25      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:url   网关   remove   php   大于   post   route   gateway   gate   

公司老的项目使用是php,要进行重构。其他团队使用php curl函数使用post方式调用Spring Cloud gateway 报time out错误。

但是使用postman测试是没有任何问题,php curl如果绕过网关直接访问接口也没有问题。结果发现了是因为:

使用Curl POST数据时,如果POST的数据大于1024字节,Curl并不会直接发起POST请求,而是分两步:

1、发送一个请求,Header中包含一个Expect:100-continue,询问Server是否愿意接受数据
2、接受到Server返回的100-continue回应后,才把数据Post到Server

这个也是Spring Cloud gateway一个Bug:https://github.com/spring-cloud/spring-cloud-gateway/issues/273

解决办法:配置路由转发的时候,去掉expect request Header

 .route("openapi_route", p -> p.path(ORDER_CENTER_API + "/openapi/**").filters(f->f.removeRequestHeader("Expect"))
         .uri("lb://order-xxxxx-service"))

curl使用post方式访问Spring Cloud gateway报time out错误

标签:url   网关   remove   php   大于   post   route   gateway   gate   

原文地址:https://www.cnblogs.com/FarmerMao/p/12181939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!