私はNuSOAPライブラリを使ってSOAPを使ってリモート(php)サーバと会話するクライアントをCで構築しようとしています。 はここにいくつかのユーザのユーザ情報containtます構造体/オブジェクト使用してイム:C#構造体とNuSOAP(PHP)
public struct UserProfile { public string username; public string password; public string email; public string site; public string signature; public int age; public int points;
をそして、これはPHPのコードです:今
server->wsdl->addComplexType( 'UserProfile', 'complexType', 'struct', 'all', '', array( 'username' => array('name' => 'username', 'type' => 'xsd:string'), 'password' => array('name' => 'password', 'type' => 'xsd:string'), 'email' => array('name' => 'email', 'type' => 'xsd:string'), 'site' => array('name' => 'site', 'type' => 'xsd:string'), 'signature' => array('name' => 'signature', 'type' => 'xsd:string'), 'age' => array('name' => 'age', 'type' => 'xsd:int'), 'points' => array('name' => 'username', 'type' => 'xsd:int'), ) ); $server->wsdl->addComplexType( 'UserProfileArray', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array(array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:UserProfile[]')), 'tns:UserProfile' ); $server->register("getUserProfile", array(), array('return' => 'tns:UserProfileArray'), $namespace, false, 'rpc', false, 'Get the user profile object' ); function getUserProfile(){ $profile['username'] = "user"; $profile['password'] = "pass"; $profile['email'] = "[email protected]"; $profile['site'] = "u.com"; $profile['signature'] = "usucsdckme"; $profile['age'] = 111; $profile['points'] = time()/2444; return $profile; }
私はすでに作業ログイン機能を持っている、と私ログインしたユーザーに関する情報を取得したいのですが、これらを取得する方法はわかりません。これは、のuserinfoを取得するために使用して何イムです:
string user = txtUser.Text; string pass = txtPass.Text; SimpleService.SimpleService service = new SimpleService.SimpleService(); if(service.login(user, pass)){ //logged in } SoapApp.SimpleService.UserProfile[] user = service.getUserProfile(); // THIS LINE GIVES ME AN EXCEPTION MessageBox.Show(user[0].username + "--" + user[0].points);
getUserProfile()関数は、エラーが発生します。
System.Web.Services.Protocols.SoapException was unhandled Message="unable to serialize result" Source="System.Web.Services"
またはI 'カント解析のxml' はエラーのようなものを取得します。彼らは何をやっていると私は何をしようとすると、私は1つのオブジェクトのみではなく、複数の「MySoapObjects」が返さ取得したいということですhttp://www.sanity-free.org/125/php_webservices_and_csharp_dotnet_soap_clients.html 差に:
私はこのために使用される記事からでした。
誰かがこれに慣れていて、助けてくれることを祈っています。ありがとうございました! よろしく、 opx
あなたは、この質問に私の一日の感謝を救いました!私はあなたにビールを借りています。 – Matheno