如何在kSoap2中设置SoapObject值

时间:2013-09-09 17:16:40

标签: android soap ksoap2

我想在soap body中的根SoapObject中放置一个值。

<envelope>
  <body>
    <request>34</request>
  </body>
</envelope>

有没有办法设置SoapObject的值我不能改变它必须采用这种格式的服务器端。或者是否将输出对象设置为属性?

我迷路了,即将从头开始构建它并在此时通过http发送。

1 个答案:

答案 0 :(得分:1)

我发现这样做的唯一方法是编写一个简单的类,它扩展SoapPrimitive并实现KvmSerializable。它看起来像这样:

class CustomProperty extends SoapPrimitive implements KvmSerializable
{
    public CustomProperty(String namespace, String name, String value)
    {
        super(namespace, name, value);
    }

    @Override
    public Object getProperty(int index)
    {
        return this.toString();
    }

    @Override
    public int getPropertyCount()
    {
        return 1;
    }

    @Override
    public void setProperty(int index, Object value)
    {

    }

    @Override
    public void getPropertyInfo(int index, Hashtable properties, PropertyInfo info)
    {
        info.setValue(toString());
        info.setName(getName());
        info.setNamespace(getNamespace());
    }
}

使用: envelope.setOutputSoapObject(new CustomProperty(null, "request", "34"));