最近在做毕业设计的时候,涉及到了安卓端访问web service服务端数据库,并返回一个值,当我把web service测试通过后,想写一个简单的安卓测试程序,来实现服务端数据库访问,通过web service中的一个serch()方法,然后发现,每次的返回值都是一个AnyType{},Logcat如图所示:

  网上搜集了很多资料,产生的原因其实很简答,是因为服务端返回值为null,Logcat中显示的就职anyType{},找到了原因,解决起来也就好说了,其中包括这些方法:

  {解决方法引用自博客园用户日行一米,这里表示感谢}

  1、只需要在 WebService的类属性中加入SoapRpcServiceAttribute属性就可以了。
      [SoapRpcService(RoutingStyle=SoapServiceRoutingStyle.SoapAction)]

2、参数名必须跟webservice方法中的参数名一致,因为ws将参数名自动改为了arg0、arg1,所有调用时参数也需要修改。

3、NAMESPACE  后面没有加“/”

  特此说明:

  方法一我不知道去哪儿加,看博主在解决问题时候,说方法一加了之后,直接报了异常,我也就没管。

  方法二则是我解决问题的关键,看我的Logcat中,传入参数为 username = 10010,所以传过去之后变量是username(目前我是这样认为),而webservice会将参数名自动改为arg0、arg1......所以参数不同,导致了传回的结果变成了null,显示return anyType{}。

        //调用方法时需要传入一个参数
//为了与web service保持一致,需要设置为arg0,因为web service会自动将其转化为arg0 arg1
rpc.addProperty("arg0",username);

  还有一个原因就是

            //设置是否调用的是dotNet开发的WebService,服务器是.net的需要设置为true,java不用
envelope.dotNet = false;

  我的服务端用的Java写的,所以这个属性应该设置为false。

至此,我的问题已经解决了!!!

  2017.4.23

  今天又遇到了同样的问题,但是这次就是从以前的经验中,来寻找问题了。我在返回一个存放有Map的List时候,出现了返回值为NULL的情况,Logcat里边显示的就是AnyType{},这次肯定是其他原因。

  仔细观察了一下代码,发现我在定义Map的时候是这样定义的:

  HashMap<String, String> map = new HashMap<String,String>();

  同理,拿我的List定义就是这样:

  ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();

  相比之前的定义,不一样的地方好像是Map<>中的两个参数。可能因为返回的数据不一定都是String类型的原因吧,但真正为什么,我也不清楚。只是更改了一下里边的参数这个返回值问题才解决,代码如下:

     ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> map = new HashMap<String,Object>();

  有问题再来补充吧!!!

在Android中调用KSOAP2库访问webservice服务出现的服务端返回AnyType{}的更多相关文章

  1. 在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决

    ksoap2-android-3.0.0-jar 第三方库来调用.net 写的Web Service 如果没有参数,那么调用一切顺利,但是如果服务是带参数的,那么服务端接收的参数都是nul.      ...

  2. 在Android中调用C#写的WebService(附源代码)

    由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...

  3. 在Android 中使用KSOAP2调用WebService

    WebService 是一种基于SOAP协议的远程调用标准.通过WebService可以将不同操作系统平台,不同语言.不同技术整合到一起.在Android SDK中并没有提供调用WebService的 ...

  4. 在Android中调用WebService

    某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查.我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数 ...

  5. Android客户端调用Asp.net的WebService

    Android客户端调用Asp.net的WebService 我来说两句 |2011-11-23 13:39:15 在Android端为了与服务器端进行通信有几种方法:1.Socket通信2.WCF通 ...

  6. Android 中调用本地命令

    Android 中调用本地命令 通常来说,在 Android 中调用本地的命令的话,一般有以下 3 种情况: 调用下也就得了,不管输出的信息,比如:echo Hello World.通常来说,这种命令 ...

  7. 【转】Android 学习笔记——利用JNI技术在Android中调用、调试C++代码

    原文网址:http://cherishlc.iteye.com/blog/1756762 在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在And ...

  8. Android中调用C++函数的一个简单Demo

    这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手.废话少说直接进入正题. 一.在Eclipse中创建一个Android Applicat ...

  9. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

随机推荐

  1. js,javascript,打印对象,object

    function writeObj(obj){ var description = ""; for(var i in obj){ var property=obj[i]; desc ...

  2. RGB转换成YCbCr

    clear all; close all; clc; img=imread('colorbar.jpg');%('ngc6543a.jpg'); %img=mat2gray(img); %[0,1]; ...

  3. 如何使用git提交代码

    如何使用Git管理代码 Git 是开发人员用来向代码库(msstash)中提交代码或者下载远端代码库中代码的工具. 如何使用git向代码库中提交我们修改后的代码呢? 1.如果是第一次使用git,那么需 ...

  4. js 上传文件夹

    最近公司做工程项目,实现文件夹上传. 网上找了一天,发现网上很多代码都存在相似问题,最后终于找到了一个符合要求的项目. 工程如下: 这里对项目的文件传输功能做出分析,怎么实现文件夹上传的,如何进行文件 ...

  5. VC6.0编译器设置

    主要通过VC的菜单项Project->Settings->C/C++页来完成.我们可以看到这一页的最下面Project Options中的内容,一般如下:/nologo /MDd /W3 ...

  6. Jmeter-接口功能测试

    前言 前面已经讲过了如何用Postman做接口功能测试,本篇主要是用Jmeter来演示如何做接口功能测试,这里就大致说一下Jmeter如何用哈,其余的也不多说了. Jmeter接口功能测试实例 因为在 ...

  7. Alpha阶段敏捷冲刺(六)

    1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 祁泽文:查找了单词统计的方法. 徐璐琳:通过" ...

  8. mac版win10装eclipse图标太小了,解决办法(2k显示屏+win10)

    安装了Eclipse并且打开之后,发现图标显示极其细小,肉眼几乎无法看清了.这是由于Eclipse对高分屏没有作适配导致的. Windows 10本身对于高分屏的支持已是相当不错,苏菲4的屏幕分辨率为 ...

  9. Git 安装 windows && linux

    一.安装: windows下安装Git: 1.下载Git:https://git-scm.com/download/win 2.安装Git:默认安装,一直回车 Linux下安装Git: yum安装: ...

  10. 把EXE可执行文件等作为资源包含在Delphi编译文件中

    摘自我自己过去写的一段心得. 1.编辑资源文件 *.RCWave: 资源文件是声音文件:RCDATA: 二进制数据AVI: AVI动画:ICON: 图标文件:BITMAP: 位图文件:CURSOR: ...