2

我使用 xmlrpc-c 作为我的 C 项目的 XMLRPC 客户端,我的问题是如何将以下参数传递给我的远程过程调用?

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

这是xmlrpc命令的cmdline工具
xmlrpc http://www.oreillynet.com/meerkat/xml-rpc/server.php meerkat.getItems struct/{search:linux,descriptions:i/76,time_period:12hour}

我想在我的代码中传递类似的参数。

4

3 回答 3

2

在这里,我无论如何都找到了解决方案......哇......

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);
于 2010-11-10T17:30:27.067 回答
0

我不认为你可以,所以你必须将结构解构为单独的类型参数,然后在另一边重建结构。

于 2010-11-02T18:57:38.533 回答
0

您可以使用组合的结构/数组结构:主要结构将是一个包含数据的数组。其中一些组成,如结构。但是,您必须在接收部分重构哈希表。线路中的数据类似于:

<array>
<data>
<value><string>string</string></value>
<value><struct><member><name>name</name></member><member><name>age</name>...
...
于 2010-11-02T19:05:00.153 回答