2011-08-09 10 views
0

私は消費しようとしているWebサービスは、このようなWSDLファイルを持っている:私はしかし、そのサービスにアクセスし、「setIkiliAnlasma」サービスを消費しようとしているhttp://dgpysws.teias.gov.tr/dgpys/services/EVDServis?wsdlSOAP認証

認証が必要です。私は自分の認証情報を持っており、ログインサービスへのSOAP呼び出しを行うと、認証情報を認証します。

そして、私が "setIkiliAnlasma"サービスを呼び出すと、私は認証エラーを受け取ります。ログイン呼び出しによって提供された認証を、私が消費する必要があるメインサービスと組み合わせる方法は何ですか?ところで

私はusignがPHPとネイティブのSoapClient機能ですよプログラミング言語:http://www.php.net/manual/en/class.soapclient.php

+0

どのように認証していますか?あなたは例を投稿できますか? – ManseUK

+0

私はWSDLファイルで提供されているログインメソッドを使用することになっています.WSDLで見ることができます。http://goo.gl/G2PJk – Lashae

+0

下記の私の答えを参照してください - 使用方法の例としていくつかのコードを追加しました。 Webサービスとの認証 - 私はログインメソッドを見ることができ、そのメソッドからの出力はloginResponseです - 私の答えのコードを使用して、あなたのwsdlに一致するように更新してください... – ManseUK

答えて

0

ここでは、PHPでSOAPClientを認証で使用する例を示します。使用しているWSDLに適合させるだけです。>

// Setting "trace" will allow us to view the request that we are making, after we have made it. 
$objClient = new SoapClient("http://www.somewhere.com/wsdls/some.wsdl", array('trace' => true)); 

// These parameters satisfy this specific remote call. 
$arrParameters_Login = array('username' => 'username', 'password' => 'password'); 

// Invoke the remote call "login()". 
$objLogin = $objClient->login($arrParameters_Login); 

// Grab session ID that this remote call will provide. 
$strSessionID = $objLogin->loginReturn->sessionId; 

これで、各WSDL固有のログイン応答(おそらくヘッダー)で送信されるsessionid/sessionコードを使用する必要があります。

+0

はいManseukあなたは正しいです。私は '' SoapClient :: __ doRequest''で生のSOAP呼び出しを使用し、Apache Axis2 UUIDからログイン呼び出し応答を使用しています。そのセッションIDは後者の呼び出しで参照されるはずです。 – Lashae

1

は、SOAPクライアントのURLを呼び出すときに認証するためにこの方法を使用しよう:

http://username:[email protected]/

+0

Webサービス認証は**ログインサービス** HTTP認証ではなくWSDLファイルで – Lashae

関連する問題