ホームページ  >  記事  >  バックエンド開発  >  PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)

PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)

不言
不言オリジナル
2018-04-03 15:52:084423ブラウズ

この記事では、PHP で Web サービスを実装する方法 (C# と Java で呼び出し可能であることがテスト済み) を共有します。必要な友人はそれを参照してください。

PHP を使用して他の言語で使用できる Web サービスを構築する方法C# や JAVA など、インターネット上で PHP で構築された Web サービスのほとんどは異なります。インターフェイスの入力パラメータと出力パラメータが比較的複雑な場合は、入力パラメータと出力パラメータを直接 XML 文字列または Json 文字列に統合することをお勧めします。ここでは、Web サービスの実装方法に焦点を当てます。XML 文字列の操作方法については詳しく説明しませんが、フィルタリングとチェックに注意してください。 XML と json のパラメータ。この記事では、wsdl ファイルを使用した Web サービスを紹介します。wsdl を使用しない方法は比較的簡単なので、ここでは紹介しません

soap 拡張機能を確認して有効にします

まず、soap 拡張機能、つまり extension=php_soap.dll を有効にする必要があります。 php.ini ファイルの前のセミコロンを削除し、Apache を再起動します。 phpinfo で SOAP が有効になっているかどうかを確認します。 Webサービスの実装にはsoap拡張が必要な​​ので、具体的な操作方法はここでは省略します。

VS で C# Web サービスを作成します

オンラインで見つかる php プロダクション wsdl クラスによって生成された wsdl ファイルは、php でのみ使用できるため、もう騙されないでください。そこで、ここでは曲線を使用して国を保存し、wsdl ファイルを生成します。まず C# を使用して Web サービスを構築して wsdl を生成し、その後はわずかな変更を加えるだけで使用できるようになります。

1. 新しいプロジェクトを作成します -> ASP.NET Web アプリケーションを作成します
PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)
2.b. ソリューションを右クリックし、[追加] -> [Web サービス (ASMX)] を選択します。 );
PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)
3. C# でリリースする関数の前に [WebMethod] を追加することに注意してください。いくつかの新しいクラスを作成する必要がある場合があります。
PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)4. を押します。 Ctrl+F5 を押して実行すると、以下が表示されます。 URL の後に ?wsdl を追加すると、以下のような wsdl が表示されます。名前を付けて保存します。

PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)
PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)5. 生成された WSDL ファイル内の場所を PHP Web サービスの公開アドレスに変更します:

6. PHP で Web サービス インターフェイスを作成します。 PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)7. Web サービスを公開します:

<?php
/**
 * Created by PhpStorm.
 * User: Damon
 * Date: 2018/1/26
 * Time: 11:16
 */
//引入自动加载
require __DIR__ . &#39;/vendor/autoload.php&#39;;

$wsdlfile=&#39;MESWebService.wsdl&#39;;//wsdl文件路径

$webserver = new \SoapServer($wsdlfile);
$webserver->setClass(\Src\MESWebService::class);
$webserver->handle();

Web サービス メソッドの宣言時にはパラメーターが 1 つだけですが、メソッドを呼び出すときは 2 つのパラメーター、value1 と value2 を渡す必要があることに注意してください。 (これは非常に混乱します。私の理解では、このメソッドを呼び出すと、システムはすべてのパラメーターをオブジェクトに入れて渡します)。戻り値も非常に特殊で、$arry を直接返すのではなく、オブジェクトに入れて返します。戻り値のキー値は、wsdl の名前に対応します。 PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)呼び出しテストに C# を使用します
1. 前と同じように、新しいプロジェクトを作成します -> ASP.NET Web アプリケーションを作成します 2. プロジェクトの下の参照を右クリックし、[サービス参照を追加] をクリックします。 [詳細設定] を開き、右下隅の [Web 参照の追加] をクリックすると、次の図が表示されます。


3. URL に公開された Web サービスのアドレスを入力し、Enter キーを押します。次の図が正しく表示されたら、「Web 参照名を変更した後、参照の追加」をクリックします:
PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)

4 次に、プロジェクトを右クリックし、[追加] -> [新しい項目] を選択し、Web フォームの内容を編集します。 .aspx.cs ファイル。


PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)

PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)5.e. 最後に、ctrl+F5 を押して実行すると、以下の図に示すように、対応する出力が表示されます。これは、PHP によって実装された Web サービスが C# で正しく呼び出されることを示しています。 。
PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)

PHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)関連推奨事項:


クエリmysqlを実装し、redisにキャッシュするphpメソッド


ソケットを実装するphpメソッド

phpはvar_dumpとエコー出力に複数変数テストを実装します

以上がPHP は Web サービスを実装します (C# および Java で呼び出し可能であることがテスト済み)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。