2010-11-02 22 views
2

J'utilise xmlrpc-c en tant que client XMLRPC pour mon projet C, Ma question est comment puis-je transmettre les paramètres suivants à mon appel de procédure à distance?comment puis-je passer hashtable comme objet à travers xmlrpc-c?

string1, int1, string2, int2, struct (name : age), string3

Voici l'outil cmdline de commande xmlrpc
xmlrpc http://www.oreillynet.com/meerkat/xml-rpc/server.php meerkat.getItems struct/{search:linux,descriptions:i/76,time_period:12hour}

Je veux passer le paramètre similaire dans mon code.

Répondre

2

Ici, j'ai trouvé la solution toute façon ...... ouf ....

xmlrpc_value *result, *params, *form_value; 
xmlrpc_value *form2send; 

form2send = xmlrpc_struct_new(env); // initialize the new structure 
form_value = xmlrpc_build_value(env, "s", ""); // convert emtpy_string to xmlrpc_string 
xmlrpc_struct_set_value(env, form2send, form_key, form_value); // set key/value in structure 

params = xmlrpc_build_value(env, "(sisS)", database, uid, password, form2send); // Capital `S` Denotes Structure 
fault_occurred(env, oo_plugin); 
0

Je ne pense pas que vous le pouvez, alors vous devrez déstructurer la structure en paramètres séparés, puis reconstruire la structure de l'autre côté.

+0

peut-je avoir aucun exemple ou tel lien que vous avez vu? – shahjapan

0

Vous pouvez utiliser une structure struct/array composée: la structure principale est un tableau qui contient les données. Certains d'entre eux composés, comme des structures. Cependant, vous devez recomposer la table de hachage dans la partie réceptrice. Les données du fil serait quelque chose comme:

<array> 
<data> 
<value><string>string</string></value> 
<value><struct><member><name>name</name></member><member><name>age</name>... 
... 
+0

Oui, mais en utilisant techniquement xmlrpc-c comment puis-je transmettre cette structure de données à mon appel RPC! – shahjapan