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 を通じてクライアントにエラー メッセージを返します。

在Web开发领域中,Web服务是一种非常重要的技术,它可以使不同的应用程序之间互相通信,从而构建更加复杂和强大的系统。在本文中,我们将深入探讨如何使用PHP和SOAP实现Web服务的调用和开发。SOAP(SimpleObjectAccessProtocol)是一种基于XML的协议,它用于在不同的应用程序之间进行信息交换。SOAP是一个重要的Web服务标

PHP和SOAP:如何实现数据的同步和异步处理引言:在现代Web应用程序中,数据的同步和异步处理变得越来越重要。同步处理指的是一次只处理一个请求,并等待该请求完成后再处理下一个请求;而异步处理则是同时处理多个请求,并不等待某个请求的完成。在本文中,我们将介绍如何使用PHP和SOAP来实现数据的同步和异步处理。一、SOAP简介SOAP(SimpleObjec

PHP和SOAP:如何实现远程过程调用(RPC)简介:近年来,随着分布式系统的兴起,远程过程调用(RemoteProcedureCall,RPC)在Web开发中被广泛采用。本文将介绍如何使用PHP和SOAP实现RPC,以及通过代码示例演示其用法。一、什么是远程过程调用(RPC)?远程过程调用(RemoteProcedureCall,RPC)是一种通信

随着互联网技术的不断发展,越来越多的企业级应用需要向其它应用程序提供接口以实现数据和业务的交互。在这种情况下,我们需要一种可靠的协议来传输数据并确保数据的完整性和安全性。SOAP(SimpleObjectAccessProtocol)就是一种基于XML的协议,可用于在Web环境中实现应用之间的通信。而PHP作为一种流行的Web编程语言,

如何使用PHP和SOAP实现数据的压缩和解压缩导言:在现代互联网应用中,数据的传输是非常常见的操作,然而,随着互联网应用的不断发展,数据量的增加和传输速度的要求,合理地使用数据压缩和解压缩技术成为了一个非常重要的话题。在PHP开发中,我们可以使用SOAP(SimpleObjectAccessProtocol)协议来实现数据的压缩和解压缩。本文将介绍如何

如何使用PHP和SOAP实现Web服务的部署和发布引言:在当今互联网时代,Web服务的部署和发布成为了一个非常重要的话题。PHP是一种流行的服务器端编程语言,而SOAP(SimpleObjectAccessProtocol)是一种XML协议,用于在Web服务之间进行通信。本文将向您介绍如何使用PHP和SOAP实现Web服务的部署和发布,并提供一些代码示

利用PHP和SOAP构建基于Web的应用程序的完整指南在当今互联网的时代,基于Web的应用程序已经成为了管理和交互数据的重要工具。PHP作为一种强大的开发语言,可以与其他技术进行无缝集成,而SOAP(SimpleObjectAccessProtocol)作为一种基于XML的通信协议,为我们提供了一种简单、标准和可扩展的方法来构建Web服务。本文将为您提

在实际成功渗透过程中,漏洞的利用都是多个技术的融合,最新技术的实践,本次渗透利用sqlmap来确认注入点,通过sqlmap来获取webshell,结合msf来进行ms16-075的提权,最终获取了目标服务器的系统权限。本文算是漏洞利用的一个新的拓展,在常规Nday提权不成功的情况下,结合msf进行ms16-075成功提权的一个经典案例。1.1.1扫描soap注入漏洞1.使用awvs中的webservicesscanner进行漏洞扫描打开awvs,选择webservicesscanner进行漏洞扫


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

ホットトピック



