2011-10-20 118 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

相關問題