PHP SoapClient:SoapFault异常无法连接到主机
|
使用这个代码我做肥皂请求 $client = new SoapClient('http://example.com/soap/wsdl');
try {
$result = $client->myMethod();
} catch (Exception $e) {
echo $e->getMessage();
}
有时(十分之一),有一个例外:
我的尝试 1)我寻找解决方案,I read这个问题可以由wsdl缓存引起,我在php.ini中禁用它: soap.wsdl_cache_enabled = 0 soap.wsdl_cache_ttl = 0 引起少数例外 2)我试图添加到主机的Windows(他们在Windows上)Windows / system32 / drivers / etc / hosts中的dns的分辨率: 160.XX.XXX.XX example.com 引起少数例外 3)我也试图禁用“Windows防火墙”, 引起少数例外 4)我也试图增加php.ini中的default_socket_timeout default_socket_timeout = 90 什么也没有变 问题 服务器肥皂似乎没有问题.它也是从其他网站也没有问题.还有什么我能做的吗 我的设置
UPDATE 经过多次测试,我认为问题是在网络中,肥皂服务器背后是反向代理,问题出现在代理中. 您需要进一步改进您的调试工作:广告1)WSDL是否有所改变?如果没有,请打开WSDL缓存.您不需要连接到服务器来获取WSDL文件. 你提到的输出是真的在echo $e-> getMessage();?您可以在catch()块中添加一些调试代码,例如: >检查是否可以以其他方式连接到服务器(例如file_get_contents($soap_url)) >打印时间并检查SOAP服务器上的错误日志 >你可以尝试把它放在一个循环中(某些东西沿着($i = 0; $i< = 5; $i){/ * ... * / sleep(1); continue;})看看第二次尝试会使它工作 总而言之,“有时错误”很难调试,因此您应该尝试使其可重现(这将指向问题),或者您需要尽可能多地记录和输出数据,以便您可以看到问题是在发生的时候. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
