[英]Android webservice access error
我在 Tomcat7 服務器上部署了一個簡單的 java web 服務。 我將 Axis2 用作 soap 引擎。(Web 服務和 WSDL 可以)這是我用於 web 服務的代碼
public class TestWs {
public String sayHello(){
return "Hello Grant";
}
}
我已經從 Android 2.2 訪問了這個 web 服務。它完全可以。但是這個程序不適用於 Android 4.0.3 我的 Android 程序的代碼
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);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL);
try {
ht.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
String str = response.toString();
TextView result;
result = (TextView)findViewById(R.id.textView1);
result.setText(str);
} catch (Exception e) {
e.printStackTrace();
TextView result;
result = (TextView)findViewById(R.id.textView1);
result.setText("Error!");
}
}
}
程序正確安裝在模擬器上。 但是模擬器顯示了來自 catch 塊的消息集。 錯誤是什么??? 我該如何糾正? 謝謝!
在 Honeycomb and Ice Cream Sandwich(即 Android 3.0+)中,您無法在主線程(onCreate()、onPause()、onResume() 等)中連接到 inte.net,您必須啟動一個新線程. 之所以發生這種變化,是因為網絡操作會使應用程序等待很長時間,如果您在主線程中運行它們,整個應用程序將變得無響應。 如果您嘗試從主線程連接, Android 將拋出 NetworkOnMainThreadException。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.