我正在从我的应用程序调用 Web 服务。我使用了 Service 而不是 ASyncTask
来调用 Web 服务。但我遇到了 java.io.IOException
的问题。我也尝试过使用 AsyncTask
,但它可以正常运行。问题只出现在我使用 Service
(后台线程)时。请帮助我解决这个问题。
日志记录如下:
04-02 17:01:30.103: W/System.err(17131): java.io.IOException
04-02 17:01:30.104: W/System.err(17131): at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:87)
04-02 17:01:30.105: W/System.err(17131): at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:205)
04-02 17:01:30.105: W/System.err(17131): at org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:109)
04-02 17:01:30.106: W/System.err(17131): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:157)
04-02 17:01:30.107: W/System.err(17131): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
04-02 17:01:30.108: W/System.err(17131): at com.example.rajneta.Syncdetails.send_voter_record(Syncdetails.java:204)
04-02 17:01:30.108: W/System.err(17131): at com.example.rajneta.Syncdetails.onStartCommand(Syncdetails.java:62)
04-02 17:01:30.109: W/System.err(17131): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2638)
04-02 17:01:30.110: W/System.err(17131): at android.app.ActivityThread.access$1900(ActivityThread.java:149)
04-02 17:01:30.111: W/System.err(17131): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
04-02 17:01:30.112: W/System.err(17131): at android.os.Handler.dispatchMessage(Handler.java:99)
04-02 17:01:30.113: W/System.err(17131): at android.os.Looper.loop(Looper.java:153)
04-02 17:01:30.114: W/System.err(17131): at android.app.ActivityThread.main(ActivityThread.java:4987)
04-02 17:01:30.115: W/System.err(17131): at java.lang.reflect.Method.invokeNative(Native Method)
04-02 17:01:30.116: W/System.err(17131): at java.lang.reflect.Method.invoke(Method.java:511)
04-02 17:01:30.117: W/System.err(17131): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
04-02 17:01:30.118: W/System.err(17131): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
04-02 17:01:30.119: W/System.err(17131): at dalvik.system.NativeStart.main(Native Method)
代码:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
send_voter_record();
return Service.START_NOT_STICKY;
}
public void send_voter_record() {
SoapObject request = null;
try {
String query;
request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("data", query);
} catch (Exception e) {
e.printStackTrace();
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
System.out.println("###########request" + request);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
envelope.encodingStyle = SoapEnvelope.XSD;
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
Object root = envelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
}
感谢您的提前帮助。