有没有办法在 php中有效地设置https请求的超时时间?
有一个curl 模拟 SOAP 请求的解决方案,但是它的速度要慢得多。
对慢速服务进行基准测试显示 SOAP 客户端对同一请求平均需要 6.5 秒而不是 5.5 秒。
有一个流套接字
的替代方案
(由 Zend 框架在 ZendHttpClientAdapterSocket 上实现)但是
stream_set_timeout 函数似乎不适用于 https 连接。
请注意,问题是读取超时(获得响应的时间)而不是连接超时(进行握手的时间),它适用于 http 和 soap 请求
找到一个让 curl 更快的解决方案也可以解决这个问题。
用户故事
我正在使用 zend soap 客户端对外部 https 肥皂网络服务提出请求。
当网络正常时,该服务通常平均在 5.5 秒内响应。
但是,当出现网络问题时,某些请求最多需要 7 到 8 分钟才能消耗服务器资源。
我可以使用 curl 并强制超时,然后在 web 服务出现网络问题时解决我的问题。
但是,当网络正常时,我的平均响应时间会上升到 6.5 秒。业务需求建议应该丢弃超过 30 秒的请求,以确保系统的稳定性。