2012-04-07 12 views
1

Ich habe einen Web-Service von Android 2.2 zugegriffen. Es ist völlig in Ordnung. Ich habe mein Programm für Android 4.0.3 geändert, um auf den gleichen Web-Service zugreifen. Aber das funktioniert nicht. -Code meines Android ProgrammAndroid Web Service Zugang

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.widget.TextView; 
import android.app.Activity; 
import android.os.Bundle; 

public class AndroidWSClientActivity extends Activity { 

private static final String SOAP_ACTION = "http://ws.android4.com/"; 
private static final String METHOD_NAME = "sayHello"; 
private static final String NAMESPACE = "http://ws.android4.com/sayHello/"; 
private static final String URL = "http://175.157.45.91:8085/ForAndroid4/services/TestWs?wsdl"; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    Thread networkThread = new Thread() { 
    @Override 
    public void run() { 
     try { 
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);   
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.setOutputSoapObject(request); 

     HttpTransportSE ht = new HttpTransportSE(URL); 
     ht.call(SOAP_ACTION, envelope); 
     final SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
     final String str = response.toString(); 

     runOnUiThread (new Runnable(){ 

      public void run() { 
       TextView result; 
       result = (TextView)findViewById(R.id.textView1); 
       result.setText(str); 
       } 
      } 

      } 

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

Ich habe auch Internet-Erlaubnis gegeben. Dieses Programm wird auf dem Emulator korrekt installiert. Aber zeigt das Ergebnis nicht. Es werden keine Fehler angezeigt. Eclipse sagt, dass "networkThread" nicht verwendet wird. Wie kann ich das korrigieren?

Danke!

Antwort

1

Es sieht so aus, als hätten Sie das networkThread nie gestartet. Sie würden diese müssen am Ende Ihres onCreate():

networkThread.start(); 

aber sagen, dass würden Sie gut tun AsyncTask nutzen diese Art der Sache zu tun. Ich denke, Sie werden es viel einfacher finden, sobald Sie den Dreh raus haben.

http://developer.android.com/reference/android/os/AsyncTask.html

+0

Danke! Es löste mein Problem. – Grant

+0

Ich bin froh, dass ich helfen konnte. :) –