方法1:直接電話する
コードをコピーします コードは次のとおりです:
/************************************************* ****************************/
/* ファイル名:soapclient.php
/* 説明:WebServiceインターフェースクライアントルーチン
/ ************************************************* ****************************/
include('NuSoap.php');
// パラメータはサーバーの 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; ;
$document
コードをコピーします
コードは次のとおりです:
/************************************************* ****************************//* ファイル名: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
ソープドキュメント;
?>
方法 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('password')); echo $client->debug_str;
/*
if (!$err=$proxy->getError()) {
print_r($aryResult);
print "エラー: $err";
*/
$document=$proxy->document;
echo <<
$document
?>
コードをコピーします
コードは次のとおりです:
/************************************************* ****************************/
/* ファイル名: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('password'));
//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'; $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 のデフォルトは true であることがわかります。設定する必要があります:
コードをコピーします コードは次のとおりです:
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false; ;xml_encoding = 'utf-8' ;
$client->soap_defencoding = 'utf-8';
$client->xml_encoding = 'utf-8';
http://www.bkjia.com/PHPjc/779568.htmlwww.bkjia.com
truehttp://www.bkjia.com/PHPjc/779568.html技術記事方法 1: コピーしたコードを直接呼び出す コードは次のとおりです: ? /************************************************* ****************************/ /* ファイル名:soapclient.php /* 説明:We...