Android客户端请求服务器的WebService时,服务器接收不到参数。

移动开发 码拜 7年前 (2015-11-26) 1047次浏览
当客户端调用无参的方法时,是可以的。在网页上访问带参的WebService也是可以的,客户端调试也没有任何问题,但是服务器接收到的参数一直值空的,就是接收不到。下面是本人Android客户端的核心代码,跪求高手帮忙。

  public String CallWebService( String MethodName ) {  
         
    	System.out.println( "MethodName=" + MethodName ); 
    
    	//1、新建SoapObject对象,指定webservice的命名空间和调用的webservice方法名
        SoapObject request = new SoapObject( Namespace, MethodName );  
        
        //2、给SoapObject对象添加参数  
        //Add the property to request object
        request.addProperty( "id", lockparkId );
        
        //3、生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(  
                SoapEnvelope.VER11);//注意是VER11,而不是VER12 
        
        //4、设置bodyOut属性的值为SoapObject对象request
        envelope.bodyOut = request;
        
        //5、指定webservice的类型为dotNet
        envelope.dotNet = true;
        
        envelope.setOutputSoapObject( request ); // 设置请求参数 
        
        //6、创建HttpTransportSE对象,并指定WebService的WSDL文档的URL
        HttpTransportSE androidHttpTransport = new HttpTransportSE( WEB_SERVICE_URL ); 
        
        //使用call方法调用WebService方法 
        try {
            
			     //第一个参数不仅仅是soapAction,还要是soapAction + MethodName
			     androidHttpTransport.call( SOAP_Action + MethodName, envelope );

             } catch (HttpResponseException e) {

			     e.printStackTrace();

		     } catch (IOException e) {

				 e.printStackTrace();

			 } catch (XmlPullParserException e) {

				 e.printStackTrace();

			 }
            
             //假如服务器返回的是byte[]类型
             //SoapObject response = (SoapObject) envelope.bodyIn;
        
             //假如服务器返回的是String类型
             try {
                
			      Object response = envelope.getResponse();
				  result = response.toString(); // 获取从服务器端返回的XML字符串 
				  System.out.println("Result:"+result);
				  return result;

			  } catch (SoapFault e) {

				  e.printStackTrace();

			  }
             
              return result;
             
    }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android客户端请求服务器的WebService时,服务器接收不到参数。
喜欢 (0)
[1034331897@qq.com]
分享 (0)