我在android中編寫了一個類,它將使用webservice從webservice讀取一些數據。從android類調用webservice時出錯
當通過URL調用訪問該webservice時,我正確地獲取了該響應xml。我已經在我的本地服務器上部署了webservice,我的url類似於http://localhost:8083/TestWebService/services/GetDatabaseRecords?wsdl。
以下是我在我的應用程序中使用的使用webservice的代碼部分。
private String METHOD_NAME = "getSupplierDetails"; // our webservice method name
private String NAMESPACE = "http://test.webservice.com/"; // Here package name in webservice with reverse order.
private String SOAP_ACTION = NAMESPACE + METHOD_NAME; // NAMESPACE + method name
private static final String URL = "http://my-machine-ip:8083/TestWebService/services/GetDatabaseRecords?wsdl";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION,envelope);
SoapObject so = (SoapObject)envelope.bodyIn;
以下是運行應用程序時得到的異常。
android.os.NetworkOnMainThreadException:null
我的代碼有問題嗎?請專家幫忙。
你正在嘗試在UI線程上執行HTTP。使用一個AsyncTask或其他一些構造,並從主線程中執行它,你會沒事的。 – Jens 2011-12-30 09:26:42