SoapFault异常:[HTTP]错误在工作代码

时间:2015-10-08 06:41:19

标签: php web-services soap soap-client

首先是以下错误:

  

致命错误:未捕获的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->登录(Object(stdClass))#3 {main}抛出   第62行/var/www/me/public_html/soap.php

我的代码工作得很完美,但前几天才发现错误。

我在谷歌上尝试了所有的事情,那就是:

  1. INI SET:ini_set('default_socket_timeout', 100);
  2. SOAP初始化选项:'connection_timeout' => '100'
  3. SOAP初始化选项:'keep_alive' => false
  4. PHP版5.45.6升级。
  5. 我尝试过的代码:

    $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保护。你无法得到它。

1 个答案:

答案 0 :(得分:1)

我们通过不受支持但Salesforce提供的SOAP接口库在多个(CentOS,Linux,Windows 7,Windows 8)平台上体验这一点, 来自犹他州和俄勒冈州。

因此,我们强烈怀疑这是Salesforce问题。

我以前的解决方法使用了与上面相似的技术,并且越来越多 这两个超时都是600,而不是搞乱keep_alive或soap_version。