我在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