安卓调用webservice出现的一些问题

本文属于转载 原作者jam

在 wuzeyong 大神的帮助下才完成(最后有他的连接),这里主要总结一下我连接时遇到的一些问题和解决方法(例如一个网络权限问题就可能导致无法访问)。

具体连接方法: http://blog.sina.com.cn/s/blog_87131d9a0101rmwg.html

上面的连接说了连接的方法,除了要导入相应的ksoap2.jar文件到lib,还要在AndroidManifest.xml加入访问网络的权限:
加上权限: "android.permission.INTERNET"

android使用KSOAP连接WCF总结



问题1: 返回 http status 500
解决:这个首先查看网络连接的问题,然后对一下NAMESPACE 和URL 有没有错。例如NAMESPACE ="http://tempuri.org/"; 和  NAMESPACE ="http://tempuri.org";是不同的,一定要和服务器提供的连接一样。建议用复制,粘贴。

问题二2:方法错误,没有信息
解决:查看调用方法是否正确,查看文档,建议直接复制粘贴。

问题3:参数错误, 返回 anyType{}
解决:request.addProperty("strStudentNumber", strUserName);这句要根据方法的参数个数调用相应个数。
  在网上看他们说参数的名称不重要,重要是参数个数,但是我在调试时发现参数的名字错了也得不到结果,返回了anyType{}.所以最好根据文档说明的参数名称传值。

问题4:得到的结果不全。
解决:soapObject.getProperty(0)这样得到的结果这能是一维的结果。其实前面的文章已有解决方法。

问题5:android 接收byte[] 类型
解决:可以用编码转换
      SoapObject soapObject =(SoapObject) envelope.bodyIn;
            if(soapObject == null) return null;
            byte[] b =Base64.decode(soapObject.getProperty(0).toString(),Base64.DEFAULT);
             
问题6:byte[] 转换为bitmap
解决:
假设 by 为byte[] 类型
Bitmap bp = BitmapFactory.decodeByteArray(by, 0,by.length);
  Bitmap可以用iamgeView这直接显示在界面上。


以上问题可能还有遗漏,有问题可以联系我~
Jam

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值