有没有人使用kSOAP包有一个很好的复杂对象编组示例?
需要kSOAP编组帮助
kSOAP Marshalling help needed
===============>>#1 票数:4 已采纳
虽然这个例子不是可编译和完整的,但基本思想是有一个类告诉kSOAP如何将XML标记转换为对象(即readInstance())以及如何将对象转换为XML标记(即writeInstance() )。
public class MarshalBase64File implements Marshal {
public static Class FILE_CLASS = File.class;
public Object readInstance(XmlPullParser parser, String namespace, String name, PropertyInfo expected)
throws IOException, XmlPullParserException {
return Base64.decode(parser.nextText());
}
public void writeInstance(XmlSerializer writer, Object obj) throws IOException {
File file = (File)obj;
int total = (int)file.length();
FileInputStream in = new FileInputStream(file);
byte b[] = new byte[4096];
int pos = 0;
int num = b.length;
if ((pos + num) > total) {
num = total - pos;
}
int len = in.read(b, 0, num);
while ((len != -1) && ((pos + len) < total)) {
writer.text(Base64.encode(b, 0, len, null).toString());
pos += len;
if ((pos + num) > total) {
num = total - pos;
}
len = in.read(b, 0, num);
}
if (len != -1) {
writer.text(Base64.encode(b, 0, len, null).toString());
}
}
public void register(SoapSerializationEnvelope cm) {
cm.addMapping(cm.xsd, "base64Binary", MarshalBase64File.FILE_CLASS, this);
}
}
稍后,当您调用SOAP服务时,您将对象类型(在本例中为File对象)映射到编组类。 SOAP信封将自动匹配每个参数的对象类型,如果它不是内置类型,则调用关联的编组器将其转换为XML或从XML转换。
public class MarshalDemo {
public String storeFile(File file) throws IOException, XmlPullParserException {
SoapObject soapObj = new SoapObject("http://www.example.com/ws/service/file/1.0", "storeFile");
soapObj.addProperty("file", file);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
new MarshalBase64File().register(envelope);
envelope.encodingStyle = SoapEnvelope.ENC;
envelope.setOutputSoapObject(soapObj);
HttpTransport ht = new HttpTransport(new URL(server, "/soap/file"));
ht.call("http://www.example.com/ws/service/file/1.0/storeFile", envelope);
String retVal = "";
SoapObject writeResponse = (SoapObject)envelope.bodyIn;
Object obj = writeResponse.getProperty("statusString");
if (obj instanceof SoapPrimitive) {
SoapPrimitive statusString = (SoapPrimitive)obj;
String content = statusString.toString();
retVal = content;
}
return retVal;
}
}
在这种情况下,我使用Base64编码来编组File对象。
ask by Philip.ie translate from so
未解决问题?本站智能推荐:
1回复
与Web服务的ksoap连接,没有android(使用ksoap)
好吧,我正在做一个连接...带有Web服务的sql服务器,带有j2me的Web服务,但是现在我正在做一个helloworld ...我可以,但是现在比我想做一个“ hello world” + nombre。 Web服务未收到。参数,此处是Web服务
这是用ksoap调用它的代码...
1回复
::如何解析KSOAP ARRAYTPE响应::
我需要一些帮助来了解如何在j2me中解析KSOAP RESPONSE。 以下是我提出ksoap请求后得到的实际ksoap响应。
这是ksoap响应模板
请让我知道如何将soap xml respone映射到自定义java类?
1回复
适用于J2ME的kSoap API
我正在使用ksoap / ksoap2 api从j2me调用php webservice。
对于ksoap:
用过的..
和在ksoap2中
用过的..
它返回我
故障字符串:
错误字符串:WSDL中未为此服务定义'Operation'ns8
1回复
j2me和ksoap如何在ASP.NET Web服务中获取特定元素
我在j2me中使用ksoap。 我将用户名和密码传递给asp.net Web服务方法,Web服务将数据集返回给我。 我的问题是如何从此ksoap响应(数据集)中获取“显示名称”元素?
1回复
Ksoap向后结果
我有ksop请求。 我想生产的是
而我得到的是
如您所见,connectionID在底部而不是顶部。
我正在使用Ksoap2 2.5.8,如果我切换到2.6。*,它在发送请求之前只是致命错误。 有人可以看到出什么问题了吗? 我还有另外两个ksop请求,一切都很好,但
1回复
解析ksoap响应
作为回应
在responseDump调试模式下我有这样的XML
但方法envelope.getResponse()返回下面的文本
UPD1我读了这篇文章 ,但这不是我的回答的解决方案。
好的,我正在尝试解析下面的答案
1回复
KSOAP元素的顺序
我一直在使用KSOAP for Android发送包含6个元素的SOAP请求,其中最后一个是值数组。 这是代码...
在请求中一切正常,禁止排序。 当我调用addSoapObject时,它将数组值首先放在主体请求中。 因此,eventValues元素内的所有内容都显示在请求的顶部。
1回复
ksoap Propertyinfo类型更改
我有一个小问题,我无法解决。 默认情况下,propertyingo的值为anyType:
如何将这种类型更改为a:User?
2回复
Ksoap简单数组Android
我正在尝试从返回Strings数组的Web服务中检索数据。 我做不到,所以给你一小段代码 请帮助我,我快疯了!
我可以从原始类型中检索数据,但这有点复杂。 这是Web服务的响应
提前致谢
2回复
SOAP和KSOAP之间的区别
在网络服务的基础上,我听说过“SOAP”和“KSOAP”。
什么是SOAP和KSOAP?
他们之间有什么区别?
我为什么要使用一个而不是另一个?