0

我是 Web 服务的新手,我正在编写一个可以与 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());
        }
}

我的猜测是服务有问题,或者我对数据的解释不正确。

4

1 回答 1

1

首先,将信封.body 替换为信封.get response()

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

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

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

于 2013-04-25T19:10:20.427 回答