在获取WSDL时,PHP的SoapClient在default_socket_timeout的两倍时间后超时

时间:2017-01-03 10:13:51

标签: php soap soap-client

我正在使用PHP的内置SoapClient,它需要在5秒后超时。因此我正在使用ini_set("default_socket_timeout", 5);。但是,在获取WSDL时,它会在10秒后超时。如果我将默认套接字超时更改为1秒,则在2之后超时,依此类推。实际的肥皂会在预期的5秒后调用超时。但

这是PHP中的错误,预期的行为还是我需要更改一些其他设置?使用PHP 5.6.28。

谢谢!

1 个答案:

答案 0 :(得分:0)

您还需要更改一个额外的超时设置:z=[1,9,6,5,5,3,4,6] y=['1','4','9','7','6','5','5','1','5','0','3','3','4','1','6','0'] z.insert(z[0],int(y[1])) print(z) [1, 4, 9, 6, 5, 5, 3, 4, 6] z.insert(z[2],int(y[3])) print(z) [1, 4, 9, 6, 5, 5, 3, 4, 6, 7] ,它将传递给$ options数组参数中的SoapClient。此超时控制SoapClient等待(以秒为单位)连接到Soap服务的时间,这正是您要查找的内容。

用法:

connection_timeout

连接后,$soapclient = new SoapClient($uri, array('connection_timeout' => 5)); 开始运行并控制SoapClient等待响应的时间。