Android: доступ к KSOAP

У меня такая ошибка:

01-20 10:45:20.910: W/System.err(24727): SoapFault - faultcode: 's:InvalidUser' faultstring: 'InvalidUser' faultactor: 'null' detail: org.kxml2.kdom.Node@4053e568

01-20 10:45:20.910: W/System.err(24727):    at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:116)
01-20 10:45:20.910: W/System.err(24727):    at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
01-20 10:45:20.910: W/System.err(24727):    at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
01-20 10:45:20.910: W/System.err(24727):    at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)

Я хочу получить данные из веб-службы, но не могу получить к ним доступ. Вот код:

import android.app.Activity;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.os.Bundle;
import android.util.Log;

public class SoapActivity extends Activity {

     private static final String NAMESPACE = "http://titoms.com/services/1.0";
     private static final String METHOD_NAME = "SelectAll";
     private static final String SOAP_ACTION = "http://titoms.com/services/1.0/IBranchComponent/SelectAll";
     private static final String URL = "http://cbqa.basecamptech.ph/titoms/BranchComponent.svc?wsdl";

     public void onCreate(Bundle icicle) {
             super.onCreate(icicle);
             setContentView(R.layout.main);

             try{
                     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                     envelope.dotNet = true;
                     envelope.setOutputSoapObject(request);
                     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
                     androidHttpTransport.debug = true;
                     androidHttpTransport.call(SOAP_ACTION,envelope);
                     SoapPrimitive so = (SoapPrimitive)envelope.getResponse();

                     Log.i("Soap", "Response: "+so.toString());

             } catch (Exception E) {
                     E.printStackTrace();
             }
     }

}

Может кто-нибудь мне помочь? Мне очень нужен доступ к веб-сервису


person Kev    schedule 20.01.2012    source источник


Ответы (1)


Я думаю, тебе следует изменить SOAP ACTION, потому что SOAP ACTION=NAMESPACE+METHOD NAME; твои NAMESPACE = "http://titoms.com/services/1.0"; и METHOD_NAME = "SelectAll";

Таким образом, ваше SOAP ACTION должно быть SOAP_ACTION = "http://titoms.com/services/1.0/SelectAll";

я надеюсь, что это поможет вам

person Raghav Chopra    schedule 20.01.2012