簡體   English   中英

帶有HTTPS Web服務和.PEM客戶端證書的PHP SOAP

[英]PHP SOAP with HTTPS webservice and .PEM client certificate

如何使用HTTPS Web服務和.PEM客戶端證書創建PHP SOAP?

當我這樣做時,我收到以下錯誤:

array(2){[0] =>字符串(38)“ testeResponse teste(teste $ parameters)” [1] =>字符串(38)“ testeResponse teste(teste $ parameters)”}

致命錯誤:未捕獲的SoapFault異常:[wsse:InvalidSecurity] D:\\ Inetpub \\ wwwroot \\ SOAP \\ index.php:47中缺少SOAP標頭:堆棧跟蹤:#0 [內部函數]:SoapClient-> __ call('teste',Array )#1 D:\\ Inetpub \\ wwwroot \\ SOAP \\ index.php(47):SoapClient-> teste(Array)#2 {main}放在第47行的D:\\ Inetpub \\ wwwroot \\ SOAP \\ index.php中

編碼:

$client = new SoapClient($wsdl, array(
    'local_cert'  => $localCert, 
     'passphrase' => $passphrase, 
     'style'      => SOAP_DOCUMENT, 
     'use'        => SOAP_LITERAL, 
     'exceptions' => true, 
     'trace'      => true)
);
$something = $client->teste(array());
echo $something->testeResult;

該警告與PEM證書或SSL無關。 簡單來說就是:

缺少SOAP標頭

您可以在PHP手冊中找到SOAPHeader PHP手冊中還有一些用法示例和用戶提供的注釋,也可以在此網站上找到。 例如:

$auth = array(
    'UserName' => 'USERNAME',
    'Password' => 'PASSWORD',
    'SystemId' => array('_'=> 'DATA', 'Param' => 'PARAM'),
);
$header = new SoapHeader('NAMESPACE','Auth',$auth,false);
$client->__setSoapHeaders($header);

如果您遇到問題,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM