2016-10-06 9 views
0

私はこの2日間で苦労し、インターネットで見つけたほとんどすべてを試しています。私はヘッダsecurityContextのユーザ名とパスワードを持つSOAPサービスを持っていますが、そのフォームでPHPでデータを提供する方法はありませんか?ヘッダーのsecurityContextのPHP SOAP資格証明

この要求されたヘッダXML:

<soap:Header> 
    <SecurityContext xmlns="http://tempuri.org/"> 
     <userName>string</userName> 
     <password>string</password> 
    </SecurityContext> 
</soap:Header> 

答えて

0

許は、私はそれが動作するように管理されます。誰かが似たような問題を抱えている場合には、これが必要です。

ヘッダ値を追加するためのパート:

$soap = new SoapClient($wsdl, $options); 
      $auth = array(
      'userName' => self::SOAP_USERNAME, 
      'password' => self::SOAP_PASSWORD, 
     ); 
    $header = new SoapHeader(self::SOAP_NAMESPACE, 'SecurityContext', $auth); 
     $soap->__setSoapHeaders($header); 

をまた、それは私はいくつかのSSLオプションを追加する必要がHTTPSリクエストだから:

// set stream context opts 
    $opts = array(
     "ssl" => array(
      "verify_peer" => false, 
      "verify_peer_name" => false, 
     ), 
    ); 
    // set options 
    $options = array(
     'encoding' => 'UTF-8', 
     'soap_version' => SOAP_1_2, 
     'cache_wsdl' => WSDL_CACHE_NONE, 
     'connection_timeout' => 15, 
     'login' => self::SOAP_USERNAME, 
     'password' => self::SOAP_PASSWORD, 
     'stream_context' => stream_context_create($opts), 
    ); 
関連する問題