ホームページ >バックエンド開発 >PHPチュートリアル >PHP 呼び出し Web サービスのアイデアとソース コードの共有に関する簡単な説明_PHP チュートリアル

PHP 呼び出し Web サービスのアイデアとソース コードの共有に関する簡単な説明_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:28:59708ブラウズ

方法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

tru​​ehttp://www.bkjia.com/PHPjc/779568.html技術記事方法 1: コピーしたコードを直接呼び出す コードは次のとおりです: ? /************************************************* ****************************/ /* ファイル名:soapclient.php /* 説明:We...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。