2008-08-07 18 views

答えて

19

私はwsdl2phpで大成功を収めました。 Webサービスで使用されるすべてのオブジェクトとメソッドのラッパークラスが自動的に作成されます。

+0

VMWAREを解析しようとしている爆弾vimService wsdl – Tim

+0

更新:リンクが変更され、githubを指し示しているので、古い(非常に便利な)コメントのために渡したユーザーは作業リンクをスキップするべきではありません:) –

2

これらの機能は、それらの言語での開発に使用しているツールに固有の機能です。

たとえば、メモ帳を使用してコードを作成していた場合、これらのツールはありません。だから、おそらくあなたが使用しているツールの質問をする必要があります。私は過去にNuSOAPを使用していたhttp://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html

9

:PHPの場合

。私はそれがあなたが含めることができる単なるPHPファイルのセットであるので、それが好きでした。 Webサーバーには何もインストールされず、変更する構成オプションもありません。 WSDLもサポートされており、これは特典です。

85

PHP5では、WSDL上でSoapClientを使用してWebサービス関数を呼び出すことができます。 For example

$client = new SoapClient("some.wsdl"); 

と$クライアントは現在some.wsdlで定義されたクラスのメソッドを持つオブジェクトです。

$result = $client->getTime(); 

をそしてその結果は、(当然)$結果変数に次のようになります。getTimeと呼ばれる方法がWSDLにあったのであれば、あなただけの呼び出します。使用可能なすべてのメソッドのリストを返すには、__getFunctionsメソッドを使用します。

+0

これはいいですが、すぐに使い始めるには[wsdl2php-interpreter](https://code.google.com/p/wsdl2php-interpreter/) –

2

このarticleは、PHP SoapClientを使用してapi Webサービスを呼び出す方法を説明しています。

1

は、あなたが以下のように提供されたと言う。

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/"> 
    <x:Header/> 
    <x:Body> 
     <int:authenticateLogin> 
      <int:LoginId>12345</int:LoginId> 
     </int:authenticateLogin> 
    </x:Body> 
</x:Envelope> 

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <authenticateLoginResponse xmlns="http://thesite.com/"> 
      <authenticateLoginResult> 
       <RequestStatus>true</RequestStatus> 
       <UserName>003p0000006XKX3AAO</UserName> 
       <BearerToken>Abcdef1234567890</BearerToken> 
      </authenticateLoginResult> 
     </authenticateLoginResponse> 
    </s:Body> 
</s:Envelope> 

のはhttp://thesite.com/にアクセスするWSDLアドレスがあることを言ったとしましょう: http://thesite.com/PortalIntegratorService.svc?wsdl

$client = new SoapClient('http://thesite.com/PortalIntegratorService.svc?wsdl'); 
$result = $client->authenticateLogin(array('LoginId' => 12345)); 
if (!empty($result->authenticateLoginResult->RequestStatus) 
    && !empty($result->authenticateLoginResult->UserName)) { 
    echo 'The username is: '.$result->authenticateLoginResult->UserName; 
} 

あなたが見ることができるようにログインID値を変更することができますが、XMLで指定された項目はPHPコードで使用されています。

関連する問題