【问题标题】:Android: Accessing KSOAPAndroid:访问 KSOAP
【发布时间】:2012-01-20 03:08:28
【问题描述】:

我有这种错误:

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)

我想从 Web 服务中获取数据,但我似乎无法访问它。代码如下:

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();
             }
     }

}

谁能帮帮我?我急需访问网络服务

【问题讨论】:

    标签: android ksoap


    【解决方案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";

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多