使用此代码我提出肥皂请求
$client = new SoapClient('http://example.com/soap/wsdl');
try {
$result = $client->myMethod();
} catch (Exception $e) {
echo $e->getMessage();
}
有时(十分之一)会引发异常:
SoapFault 异常:[HTTP] 无法连接到主机
我的尝试
1)我寻找解决方案,我读到这个问题可能是由 wsdl 缓存引起的,我在以下位置禁用了它php.ini
:
soap.wsdl_cache_enabled = 0
soap.wsdl_cache_ttl = 0
引发更少的异常
2)我试图将dns的分辨率添加到windows主机(它们在windows上)windows/system32/drivers/etc/hosts
:
160.XX.XXX.XX example.com
引发更少的异常
3)我还尝试禁用“Windows防火墙”,
引发更少的异常
4)我也尝试增加php.ini中的default_socket_timeout
default_socket_timeout = 90
什么也没有变
问题
服务器soap似乎没有问题。其他站点也可以正常使用。还有什么我可以做的吗?
我的设置
PHP 5.6
阿帕奇 2.4
视窗服务器 2012
更新
经过多次测试,我认为问题出在网络上,soap服务器在反向代理后面,问题出现在代理上。