gpt4 book ai didi

android - 如何使用 ksoap2 将字符串数组传递给 webservice?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:15 26 4
gpt4 key购买 nike

我在 Android 中有一个使用 ksoap2 的网络客户端,但我无法将字符串数组作为参数传递给网络服务。

这是我的代码

String[] items={"hello","world"};
request.addproperty("str",items);

最佳答案

首先使用“soapUI”查看正确的请求结构(如项目名称、项目 namespace ……)。我们假设你想在请求中这样写 XML:(这里的 n0 和 n1 是命名空间)

<n0:strarray xmlns:n0="http://n0 ..." xmlns:n1="http://n1 ...">
<n1:string>hello</n1:string>
<n1:string>world</n1:string>
</n0:strarray>

从向量扩展一个类:

import java.util.Hashtable;
import java.util.Vector;

import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.PropertyInfo;

public class StringArraySerializer extends Vector<String> implements KvmSerializable {
//n1 stores item namespaces:
String n1 = "http://n1 ...";

@Override
public Object getProperty(int arg0) {
return this.get(arg0);
}

@Override
public int getPropertyCount() {
return this.size();
}

@Override
public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo arg2) {
arg2.setName = "string";
arg2.type = PropertyInfo.STRING_CLASS;
arg2.setNamespace = n1;
}

@Override
public void setProperty(int arg0, Object arg1) {
this.add(arg1.toString());
}

}

要构建请求,您必须这样做:

1-从这个类中创建一个新的矢量对象:

StringArraySerializer stringArray = new StringArraySerializer();

2-然后你可以添加元素:

stringArray.add("hello");
stringArray.add("world");

3-然后用它创建一个 PropertyInfo:

//n0 stores array namespace:
String n0 = "http://n0 ...";
stringArrayProperty = new PropertyInfo();
stringArrayProperty.setName("strarray");
stringArrayProperty.setValue(stringArray);
stringArrayProperty.setType(stringArray.getClass());
stringArrayProperty.setNamespace(n0);

4-然后将所有属性添加到请求中:

Request = new SoapObject(NAMESPACE, METHOD_NAME);
Request.addProperty(stringArrayProperty);

引用:

ksoap2-android,CodingTipsAndTricks

关于android - 如何使用 ksoap2 将字符串数组传递给 webservice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com