Ksoap2形成SoapObject

时间:2013-11-24 11:09:14

标签: ksoap2 android-ksoap2

我需要生成一个SoapObject。这是我的代码 -

SoapObject request = new SoapObject(namespace, method);
SoapObject r = new SoapObject(namespace, "request");
r.addProperty("email", email);      
request.addSoapObject(r);

我的代码生成以下内容

   <Info xmlns=NAMESPACE > 
      <request>
     <email>id@gmail.com</email>
      </request>
   </Info>

但请求正文必须像这样

<con:Info>
     <!--Optional:-->
     <con:request>

        <typ:email>id@gmail.com</typ:email>

     </con:request>
  </con:Info>

我该怎么做才能包含那个典型:在我的代码中等价?

1 个答案:

答案 0 :(得分:1)

您要生成的代码缺少名称空间声明,它们可能位于树中的某个位置。

电子邮件的命名空间似乎与其余的命名空间不同。您的代码需要反映这一点以生成等效的XML。

P.S。你可以试试像

这样的东西
PropertyInfo emailType = new PropertyInfo();
emailType.name = "email";
emailType.namespace = emailNamespace;
emailType.type = String.class;
r.addProperty(emailType, email);

kSOAP是为J2ME编写的,它不支持反射,并且它有一些复杂性可以解决这个问题。我不认为我真的可以在Android上推荐它:

  • 对于简单的情况,可以使用DOM
  • 对于复杂的情况,类似于GSON的序列化库可能更有意义(不确定SOAP对象序列化是否存在与GSON类似的东西)。