Php有效地设置HTTPS请求的读取超时

时间:2012-05-10 16:02:16

标签: php soap curl https timeout

有没有办法在php中有效设置 https 请求的超时?

solution curl模拟SOAP请求,但速度要慢得多。

针对慢速服务对其进行基准测试,显示平均为6.5秒,而不是SOAP客户端为同一请求采用的5.5秒。

还有stream socket的替代方案 (由Zend Framework在ZendHttpClientAdapterSocket上实现)但是 stream_set_timeout函数似乎不适用于https连接。

注意,问题是读取超时(获得响应的时间),而不是对http和soap请求都有效的连接超时(握手时间)

找到使卷曲更快的解决方案也可以解决问题。

用户故事
我正在使用zend soap客户端在外部https soap webservice上发出请求 当网络正常时,该服务通常在5.5秒内响应 但是,当存在网络问题时,某些请求最多需要7到8分钟 消耗服务器资源。

我可以使用curl并强制超时,然后在网络服务出现网络问题时解决我的问题。
但是,当网络正常时,我的平均响应时间可达6.5秒 业务要求建议应该删除超过30秒的请求,以确保系统的稳定性。

1 个答案:

答案 0 :(得分:1)

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

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

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


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