クライアント:
[コード]
include_once "phprpc_client.php";
$client = 新しい PHPRPC_Client('http://127.0.0.1/phpservice/phprpcserver/server.php');
$data = $client->getUser();
var_dump($data);
// リクエストしたデータを取得します
上記で wsdl について言及した後、それを生成する方法について説明します。
//////////////////////////////////////////////// /// ///////////////////////////////
3: オープンソースの NUSOAP
まず、オンラインにアクセスして nusoap の最新バージョンをダウンロードします。解凍後、このファイルをサーバーとクライアントにそれぞれ配置し、サーバーとクライアントにダウンロードします。クライアントは通信ファイルとしてserver.phpファイルとclient.phpファイルをそれぞれ作成します。
サーバーファイルは次のとおりです:
コードをコピーします
コードは次のとおりです:
ini_set("soap.wsdl_cache_enabled", 0);//キャッシュをオフにする
require_once("lib/nusoap.php"); //nusoap ファイルをロードします
$server = 新しいsoap_server
$server->configureWSDL('nusoasp');//サービス名を設定し、wsdlを使用して通信する場合は、インターネット上に多くの例があります。
$server->register('getUserInfo', array('name'="xsd:string", 'email'="xsd:string"), array('return'="xsd:string"));
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) : '';
$サーバー->サービス( $HTTP_RAW_POST_DATA );
関数 getUserInfo($name, $email)
{
「要求したデータを返してください!」;
}
クライアントファイルは次のとおりです:
コードをコピーします
コードは次のとおりです:
require_once("lib/nusoap.php");
$client = 新しいsoapclient('http://localhost/phpservice/nusoapserver/server.php?wsdl');
$pagram = array('fbbin', 'fbbin@foxmail.com');
$string = $client->call('getUserInfo', $pagram);
// リクエストしたデータを取得します
////////////////////////////////////////////// /// ///////////////////////////////
4: HessianPHP
実際、個人的には hessian は Web サービスではないと考えており、似ているとしか言えません。 Webサービスとしての特徴がないからです。多くの言語をサポートしています。今必要なのは、HessianPHP の PHP バージョンをダウンロードすることだけです。解凍後、使用する必要があるコア フォルダーである src ディレクトリが得られます。
これを HessianPHP に名前変更し、サーバーとクライアントにそれぞれ配置し、server.php と client.php ファイルをそれぞれ作成しました。
サーバー側:
コードをコピーします
コードは次のとおりです:
include_once 'HessianPHP/HessianService.php';// コアファイルをロードします
クラス TestService
{
パブリック関数 __construct()
{
}
パブリック関数 add($uma, $numb)
{
return $uma + $numb;
}
パブリック関数 check()
{
return 'fbbiin@gmail.com';
}
}
$test = 新しい TestService();
$hessian = new HessianService( $test, array('displayInfo' => true) );
$hessian->handle();//これはオンライン $hessian->service() ではないことに注意してください。バージョンが異なる可能性があります。変更してください。ソースコードを読んで初めて知りました!
?>
クライアント:
コードをコピーします
コードは次のとおりです:
include_once 'HessianPHP/HessianClient.php';
$url = "http://localhost/phpservice/hessianserver/server.php";
$options = 新しい HessianOptions();
$client = 新しい HessianClient( $url, $options );
$num = $client->add( 3, 5 );
echo $num;//取得: 8;
echo $client->check();//取得: fbbiin@gmail.com;
上記の 4 つの方法は、Web 開発プロセスで一般的に使用される Web サービス通信方法です。最も一般的に使用されているのは nusoap ですが、個人的には phprpc は基本的に nusoap に似ていますが、有料です。また、Java を使用しているようで、バイナリ メソッドを使用してデータ ストリームを送信する hessianPHP もあります。実際、それぞれに独自の利点があります。さらに詳しい情報については、Baidu および Google をご覧ください。
wsdl ファイルの生成について話しましょう。
Web サービスで通信するために最も一般的に使用され、比較的安全な方法は、wsdl を使用することです。この種のファイルは自分で作成できますが、一部の専門家には作成できないようです。そのため、wsdl を使用する必要があります。これを行うには、zend Studio ツールを使用して wsdl ファイルを生成します。
次に、図に示すように、新しい WSDL ファイルを作成できるように、WSDL ファイル ([ファイル]->[新規]->[その他]->[Web サービス]->[WSDL]) を生成します。
![](http://www.bkjia.com/uploads/allimg/150206/01001U4A-0.png)
![](http://www.bkjia.com/uploads/allimg/150206/01001QO7-1.png)
![](http://www.bkjia.com/uploads/allimg/150206/01001W013-2.png)
次に、zeng スタジオが提供する視覚的な操作を行います。もちろん、それが得意であれば、ファイルのコードを変更することもできます。理解できれば難しい。
![](http://www.bkjia.com/uploads/allimg/150206/01001V561-3.png)
![](http://www.bkjia.com/uploads/allimg/150206/01001W2Z-4.png)
この手順を完了すると、WSDL ファイルは基本的に使用できるようになりますが、次の 2 つの問題に注意する必要があります:
この手順を実行すると、バインディングがないため、テストが失敗する可能性があります。これは、バインディングを右クリックして [バインディング コンテンツの生成] を選択する必要がある場合があります (2 つの真ん中にある小さなボックスです)。大きな箱)。
2 番目に注意すべきことは、PHP の WSDL キャッシュです。テストするときは、通常、WSDL キャッシュをオフにする必要があります。オフにしないと、更新された WSDL ファイルの代わりに元の WSDL ファイルが使用される可能性があります。キャッシュをオフにする方法は 2 つあります。1 つは php.ini で直接soap.wsdl_cache_enabled = 0を設定する方法で、2 つ目はphpファイルにini_set("soap.wsdl_cache_enabled", "0")というステートメントを追加する方法です。 ;
これを実行すると、サーバー プログラムを安全にテストして呼び出すことができます。
以上です、OK!
http://www.bkjia.com/PHPjc/953151.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/953151.html技術記事 php での Web サービス実装の 4 つの単純なアーキテクチャ方法と例、phpwebservice 1: PHP 自体の SOAP すべての Web サービスにはサーバーとクライアントが含まれます。 使用するには...
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。