【发布时间】:2016-01-05 15:18:35
【问题描述】:
一开始的错误如下:
致命错误:未捕获的 SoapFault 异常:[HTTP] 获取 http 时出错 /var/www/me/public_html/soap.php:62 中的标头堆栈跟踪:#0 【内部函数】:SoapClient->__doRequest('http://dgpysws....', 'urn:login', 2, 0) #1 /var/www/me/public_html/soap.php(62): SoapClient->__call('login', 数组)#2 /var/www/me/public_html/soap.php(62): SoapClient->login(Object(stdClass)) #3 {main} 抛出 /var/www/me/public_html/soap.php 在第 62 行
我的代码运行良好,但几天前出现了错误。
我在谷歌上尝试了所有的东西,就是这样:
- INI 设置:
ini_set('default_socket_timeout', 100); - SOAP 初始化选项:
'connection_timeout' => '100' - SOAP 初始化选项:
'keep_alive' => false - PHP 版本
5.4到5.6升级。
我尝试过的代码:
$options = array(
'trace' => true,
'exceptions' => true,
'keep_alive' => false,
'connection_timeout' => 100,
'soap_version' => SOAP_1_2
);
$client = new SoapClient("http://dgpysws.epias.com.tr/dgpys/services/EVDServis.wsdl", $options);
$p1 = new stdCLass();
$p1->loginMessage = new stdCLass();
$p1->loginMessage->UserName = new stdCLass();
$p1->loginMessage->UserName->v = "USERNAME";
$p1->loginMessage->Password = new stdCLass();
$p1->loginMessage->Password->v = "PASSWORD";
$client->login($p1);
我可以通过以下方式获得所有类型:
$client->__getTypes(); // works
但我无法登录:
$client->login($p1); // not works
注意:WSDL url 受 IP 保护。你无法得到它。
【问题讨论】:
-
这个问题自然解决了:S Thx,all!
标签: php web-services soap soap-client