加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在使用KSoap2调用webservice遇到的问题

发布时间:2020-12-17 00:21:30 所属栏目:安全 来源:网络整理
导读:问题一:在主线程中无法访问intenet 由于我采用的是android的4.2版本,在主线程充调用webservice的时候,遇到 Network on Main ThreadException 异常。通过查阅网上资料,可以有以下两种解决方案。 1.在当前的Activity中加入以下代码: StrictMode.setThread

问题一:在主线程中无法访问intenet

由于我采用的是android的4.2版本,在主线程充调用webservice的时候,遇到Network on Main ThreadException异常。通过查阅网上资料,可以有以下两种解决方案。

1.在当前的Activity中加入以下代码:

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
        .detectDiskReads()  
        .detectDiskWrites()  
        .detectNetwork()   // or .detectAll() for all detectable problems  
        .penaltyLog()  
        .build());  
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
        .detectLeakedSqlLiteObjects()   
        .penaltyLog()  
        .penaltyDeath()  
        .build());
2.利用线程来解决

在点击按钮事件时创建一个新线程:

new Thread(loginThread).start();
并在run方法中添加具体实现

Runnable loginThread = new Runnable() {
      public void run()
      {
           //具体实现方法
      }
}

问题二:在使用webservice时,遇到 java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive错误的解决

? ? ? 在做android ?Webservice开发的时候我一开始使用SoapObject soapObject =?(SoapObject) envelope.getResponse();这个来接受返回来的值,但产生java.lang.ClassCastException:?org.ksoap2.serialization.SoapPrimitive这样的错误;换成使用envelope.bodyIn();方法仍有这个错误,后通过查阅网上资料,可以用object soapObject = envelope.getResponse();来接受返回的值。根据网上的资料,envelope.getResponse();适用于返回值类型为string的结果;envelope.bodyIn();适用于返回值为byte[]的结果集(这个还有待验证)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读