首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android调用webservice 不施行envelope.bodyIn

2013-07-08 
android调用webservice 不执行envelope.bodyIn本帖最后由 wushuangman1127 于 2013-06-23 19:34:31 编辑St

android调用webservice 不执行envelope.bodyIn
本帖最后由 wushuangman1127 于 2013-06-23 19:34:31 编辑


        String soapAction = "http://localhost/.../uploadposition";
        String methodName = "uploadposition";
    String endPoint = "http://localhost/.../s_position.php";

        String result = null;
    SoapObject object = null;

//Initialize soap request + add parameters
        SoapObject request = new SoapObject(nameSpace,methodName);           
        
        request.addProperty("long",lng);
        request.addProperty("lat",lat);
        request.addProperty("license",license);
        request.addProperty("sn","");
        request.addProperty("stat",stat);
        request.addProperty("speed",(float)0);
        request.addProperty("direction","");
        request.addProperty("pin","1111");
        
        /*webservice 输入参数
                long: xsd:float
    lat: xsd:float
    license: xsd:string
    sn: xsd:string
    stat: xsd:int
    speed: xsd:float
    direction: xsd:string
    pin: xsd:string   
         */
        
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        (new MarshalBase64()).register(envelope); 
        
        envelope.setOutputSoapObject(request);
        envelope.dotNet = true;
                


        try {
              HttpTransportSE androidHttpTransport = new HttpTransportSE(endPoint);            
              androidHttpTransport.call(soapAction, envelope);
                           
              object = (SoapObject)envelope.bodyIn; 
              result = object.getProperty("return").toString();
                                                   
             if(envelope.getResponse()!=null)
             {
                  SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
                  result = response.toString();
              }
                                                 
            } catch (Exception e) {
            e.printStackTrace();
              }  
            


    这段代码主要功能是调用weiservice的接口上传用户的当前位置信息,但是在执行的时候总是跳过41、42这两句代码,从而无法获取返回值,不知为何。之前用同样的方法调用服务器接口注册用户信息都没问题。
    有哪位同仁遇到相似的题的,希望能指点一下!谢谢android调用webservice 不施行envelope.bodyIn android webservice soap


[解决办法]
androidHttpTransport.call(soapAction, envelope);异常了?跑到异常处理段里去了
[解决办法]
androidHttpTransport.call(soapAction,?envelope);改为androidHttpTransport.call(null,?envelope);试试
[解决办法]
感觉你的41,42行代码是多余的,想要获取response信息,直接在 
 if(envelope.getResponse()!=null)
  {
                  //处理你的响应代码即可
   }

热点排行