nusoap wsdl ファイルの説明。解決
nusoap wsdl ファイルの説明。 。
私のサーバーは次のように作成されます:
App::import('Vendor', 'nusoap/lib/nusoap');
$server = newsoap_server;
$server->configureWSDL( ' sum');
$server->register('sum',array('x'=>'xsd:string','y'=>'xsd:string'),array('return ' =>'xsd:string'),'','http://localhost/ws/info/sum');
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) : '';
$server->service($HTTP_RAW_POST_DATA);
//$this->set('data',$server);
$this->autoRender = false;
ブラウザに入力
http://localhost/ws/info?wsdl
返された XML 情報には次の文が含まれています
< ;/service>
cakephp を使用してデフォルト値を使用するとエラーが発生するため、$server を作成するときにsoap:address location の値を設定できますか。 。
-----解決策---------
参考例を示します:
PHP は Webservice インスタンスを呼び出します。これを読むと理解できます。
NuSoap は、PHP 環境の WebService プログラミング ツールであり、WebService の作成または呼び出しに使用されます。これは、HTTP を介して SOAP メッセージを送受信する、完全に PHP 言語で記述された一連の PHP クラスであるオープン ソース ソフトウェアであり、NuSphere Corporation (http://dietrich.ganx4.com/nusoap/) によって開発されています。 NuSOAP の利点の 1 つは、拡張ライブラリのサポートを必要とせず、この機能により NuSoap をすべての PHP 環境で使用できるようになり、サーバーのセキュリティ設定の影響を受けないことです。
方法 1:
/************************************************* ****************************/
/* ファイル名:soapclient.php
/* 説明:WebServiceインターフェイス クライアント ルーチン
/************************************************* ****************************/
include('NuSoap.php');
//soapclient オブジェクトを作成します。パラメータはサーバーの WSDL
$ client = newsoapclient('http://localhost/Webservices/Service.asmx?WSDL', 'wsdl');
// パラメータを配列形式に変換して渡します
$aryPara = array(' strUsername '=>'username', 'strPassword'=>MD5('password'));
// リモート関数を呼び出す
$aryResult = $client->call('login' , $aryPara);
//echo $client->debug_str;
/*
if (!$err=$client->getError()) {
print_r( $ aryResult);
} else {
print “エラー: $err”;
}
*/
$document=$client->document;
echo < ;<
$document
SoapDocument;
?>
方法 2: プロキシ呼び出し
/************************************************* ****************************/
/* ファイル名:soapclient.php
/* 説明:WebService インターフェイス クライアント ルーチン
/************************************************* ****************************/
require('NuSoap.php');
/ /soapclient オブジェクトを作成します。パラメータはサーバーの WSDL
$client=newsoapclient('http://localhost/Webservices/Service.asmx?WSDL', 'wsdl');
/ /プロキシ クラスを生成します
$proxy=$client->getProxy();
//リモート関数を呼び出します
$aryResult=$proxy->login('username',MD5(' パスワード'));
//echo $client->debug_str;
/*
if (!$err=$proxy->getError()) {
print_r( $ aryResult);
} else {
print “エラー: $err”;
}
*/
$document=$proxy->document;
echo < ;<
$document
SoapDocument;
?>
NuSoap を使用して .NET WebService または J2EE WebService を呼び出す多くの友人は、中国語の文字化けの問題に遭遇した可能性があります。以下に、この問題の原因とその解決策を紹介します。
NuSoap が WebService を呼び出すときに文字化けが発生する理由:
通常、WebService を開発するときは、UTF-8 エンコードを使用します。このとき、次のように設定する必要があります。 $client- >soap_defencoding = 'utf-8';
同時に、xml は同じエンコーディングで渡す必要があります:
$client->xml_encoding = 'utf- 8′;
この時点ではすべて正常であるはずですが、結果を出力すると、返されたコードが文字化けしていることがわかりました。
NuSoap が WebService を呼び出すときに文字化けするコードの解決策:
実際、デバッグ機能をオンにしている友人は、$client->response が正しい結果を返すことに気づくでしょう。なぜ $result = $client->call($action, array('parameters' => $param)); しかし、それは文字化けしたコードですか?
NuSoap コードを調べると、xml_encoding が UTF-8 に設定されている場合、NuSoap は decode_utf8 の設定を検出し、それが true の場合、PHP の utf8_decode 関数が実行され、NuSoap がデフォルトになることがわかります。
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$client->xml_encoding を true に設定する必要があります。 = 'utf-8 ';
補足
NuSOAP は、WEB サービスを作成または呼び出すために使用される、PHP 環境の WEB サービス プログラミング ツールです。これはオープンソース ソフトウェアであり、現在のバージョンは 0.7.2 で、SOAP1.1、WSDL1.1 をサポートし、SOAP1.1 および WSDL1.1 をサポートする他のシステムと相互運用できます。 NuSOAP は完全に PHP 言語で記述されており、一連の PHP クラスで構成されています。この機能により、NuSOAP はすべての PHP 環境で使用でき、サーバーのセキュリティ設定の影響を受けません。
1. NuSOAP を入手してインストールします
NuSOAP プロジェクトは、SourceForge 上に構築されています。ネットワーク アドレスは、http://sourceforge.net/projects/nusoap/ です。 NuSOAP 。
NuSOAP のインストールは比較的簡単です。ダウンロードした NuSOAP ファイルをサーバーにコピーします。このファイルは、PHP コードがアクセスできる限り、別のディレクトリに配置することも、プログラム コードと同じディレクトリに配置することもできます。これらのファイルにアクセスするだけです。
この記事のテスト環境は PHP4.3.2 および NuSOAP バージョン 0.7.2 に基づいており、NuSOAP は WEB ディレクトリ "/nusoap" にインストールされており、lib とsamples の 2 つのサブディレクトリがあります。このうち、lib ディレクトリには NuSOAP のすべてのソース コード ファイルが保存され、samples ディレクトリには NuSOAP 開発チームが提供するいくつかのサンプルが含まれています。テストファイルはWEBディレクトリ「/nusoap」に保存されます。
2. NuSOAP の使用
NuSOAP は PHP クラスで構成されており、最もよく使用されるのは、soap_server クラスとsoapclient クラスです。 WEBサービスの作成にはsoap_serverクラスを使用し、WEBサービスへのアクセスにはsoapclientクラスを使用します。
2.1 簡単な例: Hello World
この例では、NuSOAP を使用して単純な WEB サービスを作成し、NuSOAP を使用してこのサービスを呼び出すクライアント プログラムを作成します。このサービスの唯一の機能は、文字列「Hello World」をクライアントに返すことです。まず、WEB サービス プログラム コード ファイル "/nusoap/nusoap_server1.php" を作成します。
//NuSOAP ソース ファイルを現在のコード ファイルに含めます
require_once("lib/nusoap . php");
//サービス プログラムを定義します
function hello() {
return 'Hello World!';
}
//サービス オブジェクトを初期化します。このオブジェクトはクラスです。 soap_server インスタンス
$soap = newsoap_server; //サービス オブジェクトの register メソッドを呼び出して、クライアントがアクセスする必要があるプログラムを登録します。
//登録されたプログラムのみがリモート クライアントからアクセスできます。
$soap->register('hello'); //最後のステップは、クライアントによって送信されたデータを post メソッドを通じてサービス オブジェクトのサービス メソッドに渡すことです。
//サービス メソッドは入力データを処理し、対応する関数またはメソッドを呼び出し、正しいフィードバックを生成してクライアントに送り返します。
$soap->service($HTTP_RAW_POST_DATA);
?> この時点で、WEB サービスのプログラム コード ファイルが作成されました。 次に、クライアント プログラムのコード ファイル「/nusoap/nusoap_client1.php」を作成します。 , WEB サービスを呼び出します:
//NuSOAP ソース ファイルを現在のコード ファイルに含めます
require_once(“lib/nusoap.php”);
//クライアントを初期化しますオブジェクト。このオブジェクトは、soapclient クラスのインスタンスです。
// サービス プログラムの URL アドレスを、soapclient クラスのコンストラクターに渡します。
$client = newsoapclient('http://127.0.0.1/nusoap/nusoap_server1.php'); //クライアントオブジェクトのcallメソッドを使用してWEBサービスを呼び出すプログラム
$str= $client-> ;call('hello'); //クライアント オブジェクトの getError() メソッドを使用して、呼び出しプロセスにエラーがあるかどうかを確認できます。
//エラーがない場合、getError() メソッドは false を返します。エラーがある場合、getError() メソッドはエラー情報を返します。
if (!$err=$client->getError()) {
echo ” プログラムは次を返します:”,htmlentities($str,ENT_QUOTES);
} else {
echo ” エラー:”, htmlentities ($err,ENT_QUOTES);
}
?> この時点で、ブラウザを開いてクライアント プログラムにアクセスし、結果を確認します。この例では、ブラウザに次の文字列が表示されます: "プログラムは :Hello World! "
2.2 パラメータを渡し、エラー情報を返す方法
次に、例を使用して、パラメータを渡し、エラー情報を返す方法を説明します。この例では、2 つの文字列の接続を実装しています。パラメータは 2 つの文字列であり、戻り値は 2 つのパラメータを連結して形成された文字列です。まず、サービス プログラム コード ファイル「/nusoap/nusoap_server2.php」を作成します。完全なコードは次のとおりです:
require_once("lib/nusoap.php");
function concatenate ($str1 ,$str2) {
if (is_string($str1) && is_string($str2))
return $str2;
else
return newsoap_fault('client', ", '連結関数のパラメータは 2 つの文字列である必要があります');
}
$soap = newsoap_server;
$soap->register('concatenate');
$soap- > service($HTTP_RAW_POST_DATA);
?> セクション 2.1 の WEB サービス プログラムのコードと比較すると、以下の 2 つの点に注意してください。 NuSOAP のサービス プログラムを登録するプロセスは同じですが、ここでは、NuSOAP の新しいクラス、soap_fault が使用されます。渡されたパラメーターは文字列ではないため、プログラムはこれをクライアントに返します。このクラスのコンストラクターには 4 つのパラメーターがあります。
fault
code
必須パラメーター。推奨値は " Client」または「Server」。エラーがクライアントからのものであることを示します。エラーはまだサーバー側のエラーです。
faultactor
予約済み、まだ使用されていません。
faultstring
エラー説明情報
faultdetail
オプション。詳細なエラー情報を記述する XML 形式のデータ
クライアント プログラム コード ファイル "/nusoap/nusoap_client2.php" の完全な内容は次のとおりです。次のように:
require_once("lib/nusoap.php");
$client = newsoapclient('http://127.0.0.1/nusoap/nusoap_server2.php');
$parameters=array(' string 1',' string 2 ');
$str=$client->call('concatenate',$parameters);
if (!$err=$ client->getError()) {
echo ” プログラムは次を返します:",$str;
} else {
echo ” エラー:",$err;
}
?> ; NuSOAP クライアントがパラメータを指定して WEB サービスを呼び出すときは、配列を使用してパラメータを渡します。 $parameters は、各パラメータの値を順に含む配列です。クライアントがリモート サービス プログラムを呼び出すときは、2 つのパラメーターを指定した call メソッドを使用します。最初のパラメーターはサービス プログラムの名前で、2 番目のパラメーターはサービス プログラムのパラメーター配列 (ここでは $parameters) です。ブラウザ経由で上記のクライアント プログラムにアクセスすると、ブラウザに次の文字列が表示されます。 "Program returns: String 1 String 2"
次に、WEB サービス プログラムにエラー パラメーターを渡し、上記のクライアント プログラムを変更してみます。 $parameters=array("String",12) のパラメータ配列を生成するステートメントを作成し、ブラウザを通じてクライアント プログラムにアクセスすると、ブラウザには次の文字列が表示されます。「エラー: クライアント: 連結関数。パラメータは 2 つである必要があります。」文字列」。 WEB サービス プログラムは、渡されたパラメータの 1 つが文字列ではないと判断し、soap_fault を通じてクライアントにエラー メッセージを返します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

HTTP ステータス コード 520 は、サーバーがリクエストの処理中に不明なエラーに遭遇し、より具体的な情報を提供できないことを意味します。サーバーがリクエストを処理しているときに不明なエラーが発生したことを示すために使用されます。サーバー構成の問題、ネットワークの問題、またはその他の不明な理由が原因である可能性があります。これは通常、サーバー構成の問題、ネットワークの問題、サーバーの過負荷、またはコーディング エラーが原因で発生します。ステータス コード 520 エラーが発生した場合は、Web サイト管理者またはテクニカル サポート チームに連絡して詳細情報と支援を得ることが最善です。

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

NginxProxyManager を使用して HTTP から HTTPS への自動ジャンプを実装する方法 インターネットの発展に伴い、ますます多くの Web サイトが HTTPS プロトコルを使用してデータ送信を暗号化し、データ セキュリティとユーザーのプライバシー保護を向上させ始めています。 HTTPS プロトコルは SSL 証明書のサポートを必要とするため、HTTPS プロトコルを展開する際には特定の技術サポートが必要です。 Nginx は強力で一般的に使用される HTTP サーバーおよびリバース プロキシ サーバーであり、NginxProxy

HTTP ステータス コード 403 は、サーバーがクライアントの要求を拒否したことを意味します。 http ステータス コード 403 の解決策は次のとおりです: 1. 認証資格情報を確認します。サーバーが認証を必要とする場合は、正しい資格情報が提供されていることを確認します。2. IP アドレス制限を確認します。サーバーが IP アドレスを制限している場合は、クライアントの IP アドレスは制限されています。ホワイトリストに登録されているか、ブラックリストに登録されていません。3. ファイルのアクセス許可設定を確認します。403 ステータス コードがファイルまたはディレクトリのアクセス許可設定に関連している場合は、クライアントがこれらのファイルまたはディレクトリにアクセスするための十分なアクセス許可を持っていることを確認してください。等

解決策: 1. リクエスト ヘッダーの Content-Type を確認する; 2. リクエスト本文のデータ形式を確認する; 3. 適切なエンコード形式を使用する; 4. 適切なリクエスト メソッドを使用する; 5. サーバー側のサポートを確認する。

クイック アプリケーション: PHP の実践的な開発ケース分析 複数ファイルの非同期 HTTP ダウンロード インターネットの発展に伴い、ファイル ダウンロード機能は多くの Web サイトやアプリケーションの基本的なニーズの 1 つになりました。複数のファイルを同時にダウンロードする必要があるシナリオでは、従来の同期ダウンロード方法は非効率的で時間がかかることがよくあります。このため、PHP を使用して HTTP 経由で複数のファイルを非同期にダウンロードするソリューションがますます一般的になってきています。この記事では、実際の開発事例を通して、PHP 非同期 HTTP の使用方法を詳しく分析します。
