之前一个月参加了省赛的服务外包,博客也没时间写,刚好现在闲下来总结下之前一个月写安卓端遇到的问题。
1、使用ksoap2中的问题
①(SoapObject) envelope.getResponse() 无法强制转换类型
网上百度的结果都是说强制转换成Object的,但是我在实际操作的时候,还是需要转换成SoapObject来读取xml里的数据,当然用json来读取也是个方法,但是我想我用了这个库,还要自己写解析,还不如一开始就自己写soap的操作(其实一开始自己写的,但是实用性貌似有点差)。
经过自己的多次调试,得到一种比较折中的解决办法。如果xml中返回的是一个数组或者包含多个字段的数据,可以直接使用return (SoapObject) envelope.getResponse(); 来获取数据。当调用webService只返回一个是否调用成功的字段时,则return envelope.getResponse();然后调用.toString()来判断是否调用成功。
②调用webService出现“请提供有效SOAP参数”等错误
首先自己应该在客户端查看是否少了需要传递的字段,如果你确认不是客户端的错误时,那基本上很有可能就是服务器端的问题了。我因为服务器端的同学改了WebService中debug的值,导致我调了一天都不知道哪里错了,而他和我说他只添加了方法什么都没改,最后我真的是保证自己一点问题都没,他才开始查错误,进度就是这么给拖沓的。还有几次,有时改了方法中的字段名,有时改了方法名,而他都没和我说。。。所以当服务器有修改的时候一定要叫服务器端的同学和你说清楚,不然你会被整的很惨的,切身体会啊!!!
2、关于startActivityForResult后返回值的问题
当我同时调用系统的activity和自己的activity时,如果在onActivityResult中最前面的代码加一句if(resultCode != RESULT_OK) return;那么自己的activity中由于resultCode没有赋值就会直接跳过后面处理的代码段,我的解决办法就是把自己activity的代码处理段放到resultCode != RESULT_OK 判断之前。我想应该还有其他办法,没查过,如果有同学知道,可回复。
3、逻辑代码和界面代码一定要分开
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。