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

まず、envelope.bodyをenvelope.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 に答える