2

有没有办法在 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 秒的请求,以确保系统的稳定性。

4

1 回答 1

1

这取决于您使用的除 cURL 之外的其他内容。

如果您使用流,则可以使用stream_set_timeout(设置读写超时)。

您可以指定的连接超时,fsockopen或者您创建流的方式。


看看是否可以在 SOAP 客户端中指定读写超时?

于 2012-05-10T16:18:03.570 回答