zoukankan      html  css  js  c++  java
  • 在Android中调用KSOAP2库访问webservice服务出现的服务端返回AnyType{}

      最近在做毕业设计的时候,涉及到了安卓端访问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类型的原因吧,但真正为什么,我也不清楚。只是更改了一下里边的参数这个返回值问题才解决,代码如下:

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

      有问题再来补充吧!!!

  • 相关阅读:
    织梦开发——相关阅读likeart应用
    织梦标签教程
    织梦专题调用代码
    HIT 2543 Stone IV
    POJ 3680 Intervals
    HIT 2739 The Chinese Postman Problem
    POJ 1273 Drainage Ditches
    POJ 2455 Secret Milking Machine
    SPOJ 371 Boxes
    HIT 2715 Matrix3
  • 原文地址:https://www.cnblogs.com/cnyulei/p/6722066.html
Copyright © 2011-2022 走看看