Android 調用webservice


 
new Thread(){
@Override
public void run()
{
Looper.prepare();
if (getInfo()){
Intent intent = new Intent();
intent.setClass(MainActivity.this, DetailActivity.class);
startActivity(intent);
}else{
Toast.makeText(MainActivity.this, "用戶名或密碼錯誤", Toast.LENGTH_SHORT).show();
}
Looper.loop();
}
}.start();
/**
 * webService
 */
public boolean getInfo() {
    // 命名空間
    String nameSpace = "http://tempuri.org/";
    // 調用的方法名稱
    String methodName = "getSystemDate";
    // EndPoint
    //String url = "http://localhost/Webservice/service.asmx?WSDL";
    String url = "http://10.0.2.2/Webservice/service.asmx?WSDL";
    // SOAP Action
    String soapAction = "http://tempuri.org/getSystemDate";

    // 指定WebService的命名空間和調用的方法名
    SoapObject rpc = new SoapObject(nameSpace, methodName);

    // 設置需調用WebService接口需要傳入的兩個參數mobileCode、userId
    //rpc.addProperty("mobileCode", phoneSec);
    //rpc.addProperty("userId", "");

    // 生成調用WebService方法的SOAP請求信息,並指定SOAP的版本
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.bodyOut = rpc;
    // 設置是否調用的是dotNet開發的WebService
    envelope.dotNet = true;
    // 等價於envelope.bodyOut = rpc;
    envelope.setOutputSoapObject(rpc);

    HttpTransportSE transport = new HttpTransportSE(url);
    try {
        // 調用WebService
        transport.call(soapAction, envelope);
    } catch (Exception e) {
        e.printStackTrace();
    }

    // 獲取返回的數據
    SoapObject object = (SoapObject) envelope.bodyIn;
    // 獲取返回的結果
    String result = object.getProperty(0).toString();
    return false;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章