获取格式错误的SOAP响应

时间:2013-04-25 18:28:11

标签: c# java android xml soap

我是Web Services的新手,我正在编写一个可以与Web服务通信的Android应用程序。但是当我尝试在Android屏幕上显示结果时,它显示:

MethodNameResponse{MethodNameResult=anyType{};}

Web服务应该对服务器数据库进行简单查询并发布结果,这是调用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());
        }
}

我的猜测是该服务有问题,或者我正在错误地解释数据。

1 个答案:

答案 0 :(得分:1)

首先,用envelope.get response()

替换envelope.body

您在SoapObject中的响应 - 所以不仅仅是您必须toString的东西。假设您知道服务的响应是什么样的,您将需要映射响应中的数据。 (例如,您的响应可能是一个复杂的XML结构,因此SoapObject响应将反映出来。)

这是一个使用SoapObject并映射响应的完整示例

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