nusoap がオブジェクトの配列を渡す
Jul 30, 2016 pm 01:30 PM原文: http://www.cnblogs.com/Jaypei/archive/2009/04/09/1432521.html
前回、nuSOAP を使用してオブジェクトを転送することに成功しましたが、実際の運用では別の要件が存在することがよくあります。プロセスはリモートでオブジェクトの配列を返します。午後 1 日かかってようやくテストが成功したので、みんなと共有するのが待ちきれません:)
準備
まずクラス UserInfo を定義します:
class UserInfo {
var $UserName;
//... var $Sequence;
}
次に、リモートメソッドのテスト:
$a = new UserInfo();
$a -&g t;ユーザー名 = 「ジェイペイ」;
$a->シーケンス= 1928388199 ;
$b = newUserInfo();
$b->UserName = "cnblogs";
$b-> シーケンス= 83910021;
return array($a, $b);
}
一般的な nuSOAP プログラムは次のとおりです: (プロセス全体はその変更です)
// UTF-8 を使用します$soap->soap_defencoding = 'UTF-8';
$石鹸-> decode_utf8 =false;
// jaypei.cnblogs.com$soap->を想定して、WSDL名前空間を設定する必要があります。 configureWSDL(' jaypei.cnblogs ... > ;登録('こんにちは');$soap
->サービス($ HTTP_RAW_POST_DATA); 変換プロセス
まず、次のようにUserInfoの複合型を登録します: (これは以前に書きました)
$soap->wsdl->addComplexType(
) 'complexType',
「 配列 ( ) 'ユーザー名
'=>配列('名前
'=> , '
タイプ' =>'
xsd:string'
), '=>配列( ' 名前'= >'シーケンス','type' =>'xsd:int ') ); ', array(),array('return'=>'tns:UserInfo'));
リストを返したい場合は、戻り時に型を変更する必要があります。最初に、次のように、string や int などの基本型を返すリスト メソッドを見つけました: $soap->register('hello', array(), array('return'=>'SOAP-ENC:配列') );
このメソッドがカスタム複合型で使用される場合、型は次のようになります: xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="object[2]"object is not What私たちが望んでいます。そこで、オンラインで関連情報を検索したところ、次のメソッドを見つけました: $soap->register('hello', array(), array('return'=>'tns:UserInfoArray') );ここでカスタマイズする必要があります。次のように tns:UserInfoArray の配列タイプを定義して追加します。 ' UserInfoArray' , 、 ' SOAP-ENC:Array',
array
(),
)
、
'
'
); この時点でコード部分は完了しましたが、nuSOAP は呼び出し時にエラーを報告しました:
キャッチ可能な致命的なエラー:クラス UserInfo のオブジェクトを ...nusoapnusoap.php の行 6002 で文字列に変換できませんでしたそこで、nusoap.php の行 6002 を見つけて、UserInfo が文字列に変換される理由を確認してください:
$this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]");コードのほとんどを読みませんでしたが、明らかに単なるデバッグ コードであり、実用的な効果はありません。したがって、それをコメントアウトして呼び出しを続けてください。OK!合格し、すべてがうまくいきました。
注: このエラーが、私の使用方法が本来の設計に反しているためなのか、nuSOAP 自体のバグによるものなのかはわかりません。いくつかのアプリケーションを繰り返しリストし、問題がなければ成功とみなされます。間違いがありましたので修正してください。
以上、nusoap で渡されるオブジェクト配列を内容も含めて紹介しましたが、PHP チュートリアルに興味のある方の参考になれば幸いです。

人気の記事

人気の記事

ホットな記事タグ

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

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

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

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

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

ホットトピック











Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法
