質問

を使用するコードを生成するために使用できる PHP 用のツールはありますか? ウェブサービス それに基づいて WSDL?Visual Studio または Java に対して同じことを行う Eclipse プラグインで [Web 参照の追加] をクリックすることに相当します。

役に立ちましたか?

解決

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

他のヒント

PHP 5では次のように使用できます ソープクライアント WSDL 上で Web サービス関数を呼び出します。 例えば:

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

$client は、some.wsdl で定義されているクラス メソッドを持つオブジェクトになりました。したがって、WSDL に getTime というメソッドがある場合は、次のように呼び出すだけです。

$result = $client->getTime();

そして、その結果は (明らかに) $result 変数に格納されます。__getFunctions メソッドを使用すると、使用可能なすべてのメソッドのリストを返すことができます。

利用した NuSOAP 過去に。インクルードできる PHP ファイルのセットだけなので、気に入りました。Web サーバーにインストールするものは何もなく、設定オプションを変更する必要もありません。WSDL サポートも備えており、これはボーナスです。

これ 記事 PHP SoapClient を使用して API Web サービスを呼び出す方法について説明します。

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

(たとえば) メモ帳を使用してコードを作成していた場合、これらのツールはありません。したがって、使用しているツールについて質問する必要があるかもしれません。

PHP の場合: http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html

こんにちは、このサイトからこれを入手しました: http://forums.asp.net/t/887892.aspx?Consume+an+ASP+NET+Web+Service+with+PHP

Webサービスにはメソッドがあります Add これには 2 つのパラメータが必要です。

<?php
    $client = new SoapClient("http://localhost/csharp/web_service.asmx?wsdl");

     print_r( $client->Add(array("a" => "5", "b" =>"2")));
?>

次のものが提供されたとします。

<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;
}

ご覧のとおり、LoginId 値は変更できますが、XML で指定された項目が PHP コードで使用されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top