2011-08-09 2 views
0

나는 소비하기 위해 노력하고있어 웹 서비스는 WSDL 파일을 가지고 : 나는 그러나 그 서비스에 액세스, "setIkiliAnlasma"서비스를 사용하기 위해 노력하고있어 http://dgpysws.teias.gov.tr/dgpys/services/EVDServis?wsdlSOAP 인증

인증이 필요합니다. 내 자격 증명이 있고 로그인 서비스에 SOAP 호출을하면 내 자격 증명을 인증합니다.

예상대로 "setIkiliAnlasma"서비스를 호출 할 때 인증 오류가 발생합니다. 로그인 호출에서 제공 한 인증을 주 서비스와 결합하는 방법은 무엇입니까? 그런데

프로그래밍 언어 나는 usign이 PHP 및 기본 SoapClient 기능입니다 해요 :

http://username:[email protected]/ : 비누 클라이언트 URL을 호출 할 때 인증이 방법을 사용하는 http://www.php.net/manual/en/class.soapclient.php

+0

어떻게 인증하나요? 예를 게시 할 수 있습니까? – ManseUK

+0

WSDL 파일에서 제공하는 로그인 메소드를 사용해야합니다. wsdl에서 볼 수 있습니다. 또는 http://goo.gl/G2PJk를 참조하십시오. – Lashae

+0

아래 내 대답 참조 - 사용법에 대한 예제로 일부 코드 추가 웹 서비스 인증 - 로그인 메소드를 볼 수 있으며 해당 메소드의 출력은 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/세션 코드를 사용해야합니다.

+0

예 Manseuk 네 말이 맞아. 저는''SoapClient :: __ doRequest''로 원시 SOAP 호출을 사용하고 Apache Axis2 UUID에 로그인 호출 응답을 사용하고 있습니다. 해당 세션 ID는 후자의 호출에서 참조되어야합니다. – Lashae

1

시도

+0

웹 서비스 인증은 ** 로그인 서비스로 수행됩니다 ** HTTP 인증이 아닌 WSDL 파일. – Lashae