wsdl を使用して PHP で標準 Web サービス実装コードを作成する

WBOY
リリース: 2016-06-13 12:03:53
オリジナル
803 人が閲覧しました

1. wsdl を作成します
手順:
A. 非標準 Web サービスは PHP からのみアクセスできます
B. 標準 Web サービスは wsdl (XML 構文標準を使用する Web サービス記述言語) を使用する必要があります。サービスのコンテンツを記述します。私はこのように理解しています)
ここでは標準的な Web サービスのみを紹介します。
では、wsdl を作成するにはどうすればよいでしょうか?これは PHP にとっては確かに簡単ではありませんが、zend スタジオで作成するのが非常に便利であるという人もいます。しかし、zend Studio を使いたくない人にとっては、Web サービスを作成して Zend Studio をインストールするのは難しすぎると感じるかもしれません。
ここでは、SoapDiscovery.class.php クラスをインターネットからダウンロードします。このメソッドの最後は return です。それは私がやることです:
//return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '//wsdl ファイルを生成し、上記の戻り値をコメント化します
$fso = fopen($this->class_name . ".wsdl" , "w"); sprintf('% s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '
これでクラスができました。 wsdl、SoapDiscovery .class.php★を生成します。

wsdl を作成するためのサービスを提供する別のクラスまたは関数を準備するだけです
たとえば、クラス: person、ファイル名: person.class.php★ があり、2 つあります。その中のメソッドは、1 つは Say で、もう 1 つは run です。とてもシンプルです。

コードをコピー コードは次のとおりです:

class person
{
パブリック関数say()
{
return("私は話しています。");
}
パブリック関数 run()
{
return("私は走っています。");邪魔しないでください。");
}
}
?>

ここには、SoapDiscovery.class.php と person.class の 2 つのクラスがあります。 php 。
wsdl の正式な生成を開始します:
ファイルserver.phpを作成します。次のコンテンツをコピーして実行し、person.wsdl ファイルを生成します

コードをコピーします コードは次のとおりです:

include("person.class.php");

$disco = new SoapDiscovery('person', 'person'); //最初のパラメータはクラス名 (生成される wsdl ファイルはそれに基づいて名前が付けられます)、つまり person クラスであり、2 番目のパラメータはサービスの名前です (これは簡単に記述できます)。
$disco->getWSDL();
?>


2. Web サービス サーバー プログラムを作成します

server.php ファイルの内容をクリアし、次の内容をコピーします。コードをそれに挿入します:


コードをコピー コードは次のとおりです:

include("person .class.php") ;
$objSoapServer = new SoapServer("person.wsdl");//person.wsdl は作成したばかりの wsdl ファイルです
//$objSoapServer = new SoapServer("server.php? wsdl");// これも機能します
$objSoapServer->setClass("person");// person クラスのすべてのメソッドを登録します
$objSoapServer->handle();// リクエストを処理します
?>


3. Web サービスが有効かどうかをテストするための Web サービス クライアント プログラムを作成します。ファイル名は client.php そこに次の内容をコピーします。 🎜>

コードをコピー

コードは次のとおりです: $client = new SoapClient("person.wsdl") ;

//$client = new SoapClient("server .php?wsdl");//これも機能します

echo($client->say());
echo "
";
echo($client->run());
echo "
";
?>gt;


はい、終わりました。とてもシンプルですよね?
.NET を使用したい場合は、その URL を指定するだけです。
URL を取得する方法: まず、person.wsdl ファイルで を検索します (具体的な URL は次のとおりです)。決定されたディレクトリに基づいて) は、.NET 開発者に提供したいものです。ただし、すぐに満足しないでください。 http://xxxxxxxxxxxxxxxxxxxx/server.php?wsdl の後に「?wsdl」を追加する必要があります。これは正しいです。ブラウザのアドレスバーにURLを入力して見てください。
.NET 開発者は、指定された URL を取得すると、サービス参照または Web 参照をプロジェクトに追加し、プロンプトに従って関連する操作を完了できます。これは、.NET を使用する開発者にとって非常に便利です。単純。

ここでは、標準 Web サービス
1 の WSDL の作成
1 のみを紹介します。 SoapDiscovery.class.php クラスをオンラインでダウンロードします
2. SoapDiscovery.class.php のパブリック メソッド getWsdl() を変更して、wsdl ファイルを自動的に生成します (ストレージ パスに注意してください)。ここでは、wsdl モデル

コピー コード を作成するだけです。 コードは次のとおりです:


//return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '< ;/settings>');
//wsdl ファイルを生成し、上記に注釈を付けます return
$fso = fopen($this->class_name . ".wsdl" , "w");
fwrite ($fso, sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ''));
終了 ;


3.サービスを提供するクラスまたは関数

コードをコピー コードは次のとおりです:


//たとえば、クラスがあります。 : person、ファイル名 それは: person.class.php★ で、その中には 2 つのメソッドがあり、1 つはsay であり、もう 1 つは run です。とてもシンプルです。
class person
{
public function Say()
{
return("i'm speech.");
public function run()
{
return("走っているので邪魔しないでください。");
}
}
?>

4. wsdl の正式な生成を開始します:
ファイルserver.phpを作成します。次のコンテンツをコピーして実行し、person.wsdl ファイルを生成します

コードをコピーします コードは次のとおりです:

include("person.class.php");
include("SoapDiscovery.class.php"); //最初のパラメータはクラス名 (生成された wsdl)ファイルはそれに基づいています Named)、つまり person クラス、2 番目のパラメータはサービスの名前です (これは気軽に書くことができます)。
$disco = new SoapDiscovery('person','person');
$disco->getWSDL();


5. Web サービス サーバー プログラムを作成します
server.php ファイルの内容をクリアし、次のコードをそのファイルにコピーします:




コードをコピーします

コードは次のとおりです。 include("person.class.php");

$objSoapServer = new SoapServer("person.wsdl");//person.wsdl作成したばかりの wsdl ファイルです
//$objSoapServer = new SoapServer("server.php?wsdl");//これも機能します
$objSoapServer->setClass("person");//すべて登録しますperson クラスのメソッド
$objSoapServer->handle();//リクエストを処理します
?>


6. Web サービスが有効かどうかをテストする Web サービス クライアント プログラムを作成します。ファイル名は client.php



コードをコピーします

コードは次のとおりです。 > $client = new SoapClient("person.wsdl");

//$client = new SoapClient("server.php?wsdl");//これ

echo( $client->say());
echo "
";
echo($client->run()); 「

?>
7. .NET を使用する場合は、その URL を指定するだけです。
URL を取得する方法: まず、person.wsdl ファイルで を検索します (具体的な URL は次のとおりです)。決定されたディレクトリに基づいて) は、.NET 開発者に提供したいものです。ただし、すぐに満足しないでください。 http://xxxxxxxxxxxxxxxxxxxx/server.php?wsdl の後に「?wsdl」を追加する必要があります。これは正しいです。ブラウザのアドレスバーにURLを入力して見てください。
.NET 開発者は、指定された URL を取得すると、サービス参照または Web 参照をプロジェクトに追加し、プロンプトに従って関連する操作を完了できます。これは、.NET を使用する開発者にとって非常に便利です。単純。

(1) Web サイトを作成し、Web 参照を作成し、URL を入力します

(2) 強度呼び出し

コードをコピー コードは次のとおりです:


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
sdaf.Solsoft_HelloWorld ddd = new sdaf .Solsoft_HelloWorld() ;
Label1.Text = ddd.say()
}
}


テストコード http://xiazai.jb51.net/201112/yuanma /CreateSoap.rar

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート