如何在Android上建立HTTP GET連線
在Android上建立一個HTTP GET連線,是最基本也是最重要的功能,因為你可以透過HTTP GET讓你的APP連上網際網路取得所需要的資源。實作的方式有很多種,在此介紹利用Java.net的類別,urlConnection來建立一個HTTP GET連線。
1. 設計步驟流程:
3. 程式編寫提示:
4. 範例程式執行:
抓取Google首頁後將HTML內容直接印出在一個TextView中,下列圖示為範例程式執行後的螢幕擷取畫面。
1. 設計步驟流程:
- 設定urlConnection
- 連線
- 讀取回傳結果值
- android.permission.INTERNET
3. 程式編寫提示:
URL url = new URL("http://www.google.com");
//要連線的網址
URLConnection urlConnection = url.openConnection();
URLConnection.setDefaultRequestProperty("Content-type", "text/html; charset=utf8");
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
//使用InputStream來接收HTTP server傳回結果
if(in != null){
int dleng = 0;
byte[] databuffer = new byte[100];
byte[] htmldata = new byte[0];
int htmldata_leng = 0;
do
//利用do-while迴圈來處理傳回值
{
dleng = in.read(databuffer);
if (dleng > 0){
htmldata_leng += dleng;
byte[] tempbuffer = new byte[htmldata_leng];
System.arraycopy(htmldata, 0, tempbuffer, 0, htmldata.length);
System.arraycopy(databuffer, 0, tempbuffer, htmldata.length, dleng);
htmldata = tempbuffer;
//最後結果儲存在htmldata裡
}
}while(dleng > 0);
}
4. 範例程式執行:
抓取Google首頁後將HTML內容直接印出在一個TextView中,下列圖示為範例程式執行後的螢幕擷取畫面。
版主您好,
回覆刪除我是Android的新手,run了您的code之後,在Eclipse出現
Multiple markers at this line
- URL cannot be resolved to a type
- URL cannot be resolved to a type
等等的錯誤訊息,可以麻煩版主把詳細的code po出來嗎,或是寄給我actsaifox@gmail.com
非常感謝
我再將整個project寄給你參考。
回覆刪除你的輸入的URL是如何?
請問版主如何把Android的值傳至PHP在丟到MySQL儲存?
回覆刪除如何把Android client端的變數值傳至MySQL資料庫儲存,傳輸實作的方法有很多種。簡單的實作方式,為透過HTTP協定來完成這件事情。
刪除實現的步驟如下:
1. [Android client端]使用HTTP GET/POST將變數的直傳送到web server
2. [Web server端]使用PHP程式(透過$_GET[]/$_POST[]變數)接收來自Android client的結果
3. [Web server端]使用PHP程式,將接收結果寫入MySQL DB