然後介面要有網頁單機跟APP
因為APP實在是太不熟悉惹
所以趕快來做個紀錄
這個完完全全只是練習連接的部分
所以包括web service的設計都只有兩種
一種是沒有傳值過去
一種是有傳值
一開始是新增專案...
好哦完全沒有難度
就這樣
然後我沒有選7.0的系統
因為聽說好像不是很好用
第一步呢
先下載一個叫做"Ksoap2"的東西
放到你專案的資料夾裡
然後回到你的專案
看到他了沒
看到之後就右鍵
選倒數第二個"Add as Library"
然後問你要加到哪
我沒試過其他的有興趣可以試試
然後我的介面...
我希望一打開會跑測試1
按完按鈕會跑測試2
然後程式來了
我習慣在開一個檔案放非主程式的部分啦
看你們喜歡
好了~一個空白的檔案
乾乾淨淨
[webConect.java]
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class webConect {
/** 宣告連接 Web Service的基本資料*/
private static final String NAMESPACE = "http://120.125.76.185/ECG_Webservice/" ;
private static final String URL = " http://120.125.76.185/ECG/ECG_webservice.asmx";
public String text1(){
/** 將EditText中的值傳給 Web Service*/
SoapObject request = new SoapObject(NAMESPACE,"text1");
/** 設定呼叫 Web Service一些值*/
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.bodyOut=request;//envelope.setOutputSoapObject(request);//擇一使用
HttpTransportSE androidHttpTransport = new HttpTransportSE( URL);
androidHttpTransport.debug = true; // 測試模式使用
try
{
/** 開始呼叫 Web Service*/
androidHttpTransport.call(NAMESPACE+"text1", envelope);
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果
String result = object.getProperty(0).toString();
return result;
}
catch(Exception e) {
return e.toString();
}
}
public String text2(String SS){
/** 將值傳給 Web Service*/
SoapObject request = new SoapObject(NAMESPACE,"text2");
request.addProperty("s",SS);
/** 設定呼叫 Web Service一些值*/
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.bodyOut=request;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE( URL);
androidHttpTransport.debug = true; // 測試模式使用
try
{
/** 開始呼叫 Web Service*/
androidHttpTransport.call(NAMESPACE+"text2", envelope);
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果
String result = object.getProperty(0).toString();
// 将WebService返回的结果显示在TextView中
return result;
}
catch(Exception e) {
//e.printStackTrace();
return e.toString();
}
}
}
主要連接就這樣喔
再來就是超級討厭害我找很久不知道哪裡錯的地方了
第一個是權限問題
這個檔案打開來
然後加上一行
<uses-permission android:name="android.permission.INTERNET" />
位子在這邊
這個就過關了
然後還有一個
執行緒的問題
主頁程式裡面使用webConect
要用Thread來跑
不然不能用
Thread thread = new Thread(){
public void run(){
txt1.setText(wc.text1());
}
};
要執行的地方就加上thread.start();
基本上先到這邊好了
不過還有些小問題還沒解決
就之後找到了再補上囉
沒有留言:
張貼留言