获取格式错误的SOAP响应

问题描述:

我是Web服务新手,正在写一个可以与Web服务通信的Android应用程序。但是,当我试图表明在android屏幕的结果,它显示:获取格式错误的SOAP响应

MethodNameResponse{MethodNameResult=anyType{};} 

Web服务是应该做的服务器数据库和后期结果一个简单的查询,这里是方法的代码调用网络服务:

public void Convert(String val) { 
     try { 
      SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,METHOD_NAME); 

      PropertyInfo p = new PropertyInfo(); 
      p.setName(PROPERTY_NAME); 
      p.setValue(val); 
      p.setType(String.class); 
      request.addProperty(p); 



      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.dotNet = true; 
      envelope.setOutputSoapObject(request); 

      HttpTransportSE ahs = new HttpTransportSE(SOAP_ADDRESS); 
      ahs.call(SOAP_ACTION, envelope); 


      SoapObject response = (SoapObject) envelope.bodyIn; 
        TextView.setText(response.toString()); 



     } catch (Exception e) { 
      Log.e(TAG, e.toString()); 
     } 
} 

我的猜测是要么服务有问题,要么我错误地解释数据。

首先,与envelope.get响应()

你在SoapObject响应更换envelope.body - 所以不只是你未必能够的toString。假设您知道服务的响应看起来像您需要映射响应中的数据。 (例如,您的响应可能是一个复杂的XML结构,所以SoapObject响应将反映这一点)。

下面是使用SoapObject和映射响应

http://seesharpgears.blogspot.co.uk/2010/10/ksoap-android-web-service-tutorial-with.html

一个相当完整的例子