java– 在android中的Ksoap2无法序列化

java– 在android中的Ksoap2无法序列化,第1张

概述我在android中使用kso​​ap2将数字列表作为字符串发送但它有错误:java.lang.runtimeexception无法序列化我搜索此错误的解决方案但结果没有改变可以帮帮我publicStringSend(ArrayList<String>contactlist){try{SoapObjectrequest=newSoapObject(WSDL_TARGET_N

我在android中使用kso​​ap2

将数字列表作为字符串发送

但它有错误:

java.lang.runtimeexception无法序列化

我搜索此错误的解决方案但结果没有改变

可以帮帮我

public String Send(ArrayList<String> contactList){    try{SoapObject request = new SoapObject(WSDL_TARGET_nameSPACE,OPERATION_name);PropertyInfo pi=new PropertyInfo();            pi.setType(String.class);            pi.setname("contactList");            pi.setValue(contactList);            request.addProperty("contactList", pi);StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();        StrictMode.setThreadPolicy(policy);         // Creating SOAP envelope                   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);        new MarshalBase64().register(envelope); // this line is for serialization        //You can comment that line if your web service is not .NET one.        envelope.dotNet = true;        envelope.setoutputSoapObject(request);        AndroIDhttpTransport androIDhttpTransport = new AndroIDhttpTransport("http://10.0.2.2:54869/Service1.asmx");        androIDhttpTransport.deBUG = true;}    catch (Exception exception)        {            return exception.toString();        }    try        {            androIDhttpTransport.call(SOAP_ACTION, envelope);            //String result = envelope.getResponse().toString();            return "";//result;        }    catch (Exception exception)        {            return exception.toString();        }

解决方法:

使用此类进行序列化

public class MarshalDouble implements Marshal {        public Object readInstance(XmlPullParser parser, String namespace,                String name, PropertyInfo expected) throws IOException,                XmlPullParserException {            return Double.parseDouble(parser.nextText());        }        public voID register(SoapSerializationEnvelope cm) {            cm.addMapPing(cm.xsd, "double", Double.class, this);        }        public voID writeInstance(XmlSerializer writer, Object obj)                throws IOException {            writer.text(obj.toString());        }    }

添加此行以包围

    envelope.dotNet = true;    envelope.implicitTypes = true;    envelope.enCodingStyle = SoapSerializationEnvelope.XSD;    MarshalDouble md = new MarshalDouble();    md.register(envelope);
总结

以上是内存溢出为你收集整理的java – 在android中的Ksoap2无法序列化全部内容,希望文章能够帮你解决java – 在android中的Ksoap2无法序列化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存