經過今天的學習,成功實現了安卓使用get請求想服務器發送數據,具體操作如下:
1.使用eclipse寫一個簡單的servlet
在doget方法里面寫上類似於javaweb那樣從前端獲取的數據的方法
使用request.getParameter("title"),獲取Android中組件輸入的值,這是第一步
2.使用Android studio寫一個簡單的布局文件,例如添加兩個輸入框,一個按鈕
並獲取到輸入的值轉換為String類型
3.編寫Android向服務器發送請求的工具類
建議搜索“Android HTTP請求方式:HttpURLConnection”,這一段內容有非常詳細的教程
在編寫這個工具類的時候,主要有
第一:需要聲明HttpURLConnection對象
第二:編寫url,也就是請求地址,這里就用到了第一步中寫的servlet,這里需要提示的地方就是
比如在eclipse中運行一個servlet,會有下面的效果:
這里在測試編寫的servlet的時候需要我們手動添加數據
http://localhost:8081/WangLuoText01/GetContext?name=liang&pass=2
這里的localhost需要改成電腦的ip,具體的屬性名稱需要自己進行添加
例如,我今天寫的url是這樣的:
String address = "name="+name+"&age="+sex;
System.out.println(address);
//創建一個URL對象URL url = new URL("http://192.168.1.6:8081/WangLuoText01/TextGet?"+address);
然后需要我們對這個HttpURLConnection對象對象進行一些設置
//有了地址之后需要對connection進行設置
connection = (HttpURLConnection)url.openConnection();//調用URL對象的openConnection( )來獲取HttpURLConnection對象實例
//設置請求方式
connection.setRequestMethod("Get");
//設置連接超時,讀取超時的毫秒數,以及服務器希望得到的一些消息頭
connection.setConnectTimeout(10000);// 5秒 連接主機的超時時間(單位:毫秒)
connection.setReadTimeout(5000);//5秒 從主機讀取數據的超時時間(單位:毫秒)
之后在調用.getResponseCode()這個方法判斷是否等於200 //200 (成功) 服務器已成功處理了請求。 通常,這表示服務器提供了請求的網頁
到這里我們需要做的工作已經完成了
4.剩下的就是在activity中進行只用之前創建的get請求工具類
這里需要提示一點就是,安卓開發中的線程
訪問網絡要在子線程中實現,使用get取數據
具體思路就是這樣了,但是還是有不足的地方就是在之前學習Java基礎的時候,在線程這一塊是草草了事,導致今天編程的時候出現了一些問題。