2011-10-20 93 views
0

我正在尝试处理肥皂请求,并且它向我返回验证失败。所以,我在SOAP UI工具中测试了SOAP请求,发现它提供了预期的输出。我在编码时做错了什么。__soapCall返回授权错误

/*create headers*/ 
$param= new SoapVar(array('Authorization' => $username,'password'=>$password), SOAP_ENC_OBJECT); 
$header = new SoapHeader('ns1', 'Authorization', $param,false); 
$client->__setSoapHeaders($header); 

拨打电话

try{ $id=$client->__soapCall('methodname',array('filename'=>$filename,'contents'=>base64_encode($content)); 
    echo "Received a id:".$id; 
    echo '<pre>'; 
    var_dump($client->__getLastRequestHeaders()); 
    var_dump($client->__getLastRequest()); 
} 
catch(SoapFault $e){ 
     echo "Exception\n"; 
     var_dump($e); 
} 

请求头如下

string(207) "POST /services/refresh HTTP/1.1 
Host: cpanel.myproject.com 
Connection: Keep-Alive 
User-Agent: PHP-SOAP/5.2.11 
Content-Type: text/xml; charset=utf-8 
SOAPAction: "" 
Content-Length: 1410 

在SOAP UI的头,我注意到有以下线以及

星期四10月20日13时41分37秒IST 2011:DEBUG:>>“授权:基本XXXX [\ R] [\ N]”

我只是想添加这个头我的SOAPCall内的任何想法,我怎么能做到这一点...

问候

回答

0

这里是呼与头一个例子:

ini_set("soap.wsdl_cache_enabled", "0"); 
$httpsheader = new myHeader(); 
$header = $httpsheader->getHeader(); 

try 
{ 
    parent::__construct($wsdl, $header); 
} 
catch (Exception $e) 
{ 
    $this->_handleError($e); 
} 


class myHeader 
{ 

    function myHeader() 
    { 

      $this->header = array(
       'proxy_host' => $proxy_host, 
       'proxy_port' => (int)$proxy_port, 
       'proxy_login' => $proxy_login, 
       'proxy_password' => $proxy_pass, 
       'login' => $merchantID, 
       'password' => $accessKey, 
       'style' => SOAP_DOCUMENT, 
       'trace' => 1, 
       'use' => SOAP_LITERAL); 

    } 

    function getHeader() 
    { 
     return $this->header; 
    } 
} 
+0

我可以成功与SoapClient的凭据,但在连续通话_soapCall的方法告诉我的错误。我试图在soapCall方法中给出$ input_headers参数,但我仍然只能看到错误。 .. – user269867

相关问题