説明:
• 非標準の Web サービスは PHP 経由でのみアクセスできる場合があります
• 標準 Web サービスの場合は、wsdl を使用する必要があります
ここでは標準的な Web サービス www.2cto.com のみを紹介します
1.WSDLを作成します
1. SoapDiscovery.class.php クラスをオンラインでダウンロードします
2. SoapDiscovery.class.php のパブリック メソッド getWsdl() を変更して、wsdl ファイルを自動的に生成します (ストレージ パスに注意してください)。ここでは、wsdl モデルを作成するだけです
。1 //return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '');
2 // wsdl ファイルを生成し、上記をコメントして return
3 $fso = fopen($this->class_name . ".wsdl" , "w");
4 fwrite($fso, sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '') );
5 出口;
3.サービスを提供するクラスまたは関数
1 //たとえば、クラス: person があり、ファイル名は: person.class.php★、そこには 2 つのメソッドがあり、1 つはsay で、もう 1 つは run です。とてもシンプルです。
2
3クラスの人
4 {
5 パブリック関数say()
6 {
7 return("私は話しています。");
8 }
9 パブリック関数 run()
10 {
11 return(「走っているので邪魔しないでください。」);
12 }
13 }
14 ?>
4.正式に wsdl の生成を開始します:
ファイルserver.phpを作成します。次のコンテンツをコピーして実行し、person.wsdl ファイルを生成します
1
2 include("person.class.php");
3 include("SoapDiscovery.class.php");
4 //最初のパラメータはクラス名 (生成される wsdl ファイルはそれに基づいて名前が付けられます)、つまり person クラスであり、2 番目のパラメータはサービスの名前です (これは気軽に記述できます)。
5 $disco = new SoapDiscovery('person','person');
6 $disco->getWSDL();
7 ?>
5. Webサービスサーバープログラムを作成します
server.php ファイルの内容をクリアし、次のコードをコピーします。
1
2 include("person.class.php");
3 $objSoapServer = new SoapServer("person.wsdl");//person.wsdl は作成したばかりの wsdl ファイルです
4 //$objSoapServer = new SoapServer("server.php?wsdl");//これも機能します
5 $objSoapServer->setClass("person");//personクラスのメソッドをすべて登録します
6 $objSoapServer->handle();//リクエストの処理
7 ?>
6. Web サービスが有効かどうかをテストするための Web サービス クライアント プログラムを作成します。ファイル名は client.php
です。
$client = new SoapClient("person.wsdl");
//$client = new SoapClient("server.php?wsdl");//これも機能します
echo($client->say());
エコー "
";
echo($client->run());
エコー "
";
?>
7。 .NET を使用したい場合は、その URL を指定するだけです。
URL を取得する方法: まず、person.wsdl ファイルで
.NET 開発者は、指定された URL を取得すると、サービス参照または Web 参照をプロジェクトに追加し、プロンプトに従って関連する操作を完了できます。これは、.NET を使用する開発者にとっては非常に簡単です。
(1) Webサイトを作成し、Web参照を作成し、URLを入力します
(2) 力の呼び声
protected void Page_Load(オブジェクト送信者, EventArgs e)
{
if (!IsPostBack) {
sdaf.Solsoft_HelloWorld ddd = 新しい sdaf.Solsoft_HelloWorld();
Label1.Text = ddd.say();
}
}
添付ファイルのダウンロード: http://www.BkJia.com/uploadfile/2011/1208/20111208050034814.rar
2011-12-07 21:37:56
著者ディム
。