Android 手機衛士--構建服務端json、請求網路資料

來源:互聯網
上載者:User

標籤:

本文地址:http://www.cnblogs.com/wuyudong/p/5900384.html,轉載請註明源地址。

資料的傳遞
用戶端:發送http請求 http://www.oxx.com/index.jsp?key=value
伺服器:在接受到請求以後,給用戶端發送資料,(json,xml),json資料從資料庫中讀取出來,讀取資料拼接json,文法規則,結構

擷取伺服器版本號碼(用戶端發請求,服務端給響應,(json,xml))

http://www.oxxx.com/update.json?key=value 返回200 請求成功,流的方式將資料讀取下來
json中內容包含:
/* 更新版本的版本名稱
* 新版本的描述資訊
* 伺服器版本號碼
* 新版本apk*/

伺服器端json資料update.json,檔案內容如下:

{    "downloadUrl":"http://www.wuyudong.com/XXX.apk",    "versionCode":"2";    "versionDes":"2.0版本發布了,趕緊來下載啊"    "versionName":"2.0"}

注意: 儲存文本為 "UTF-8 無BOM" 格式

開啟Tomcat,將上面的update.json檔案放進ROOT檔案夾

建立工具類streamToString.java,主要作用:流轉換成的字串。代碼如下:

package com.wuyudong.mobilesafe.Utils;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;public class StreamUtil {    /**     * 流轉換成字串     * @param is    流對象     * @return    流轉換成的字串        返回null代表異常     */    public static String streamToString(InputStream is) {                //1,在讀取的過程中,將讀取的內容儲存值緩衝中,然後一次性的轉換成字串返回        ByteArrayOutputStream bos = new ByteArrayOutputStream();        //2,讀流操作,讀到沒有為止(迴圈)        byte[] buffer = new byte[1024];        //3,記錄讀取內容的臨時變數        int temp = -1;        try {            while((temp = is.read(buffer)) != -1) {                bos.write(buffer, 0, temp);            }            //返回讀取資料            return bos.toString();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                is.close();                bos.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }                return null;    }}

然後在中添加請求網路資料代碼(由於請求網路服務是耗時操作,所有新開一個線程完成):

    /**     * 檢測版本號碼     */    private void checkVersion() {        new Thread() {            public void run() {                // 發送請求擷取資料,參數則為請求json的連結地址                // http://169.254.13.99:8080/update.json 測試階段不是最優                // 僅限於模擬器訪問電腦tomcat                try {                    // 1,封裝url地址                    URL url = new URL("http://10.0.2.2:8080/update.json");                    // 2,開啟一個連結                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    // 3,設定常見請求參數(要求標頭)                    // 請求逾時                    connection.setConnectTimeout(2000);                    // 讀取逾時                    connection.setReadTimeout(2000);                                        // 預設就是get請求方式                    //connection.setRequestMethod("POST");                                        // 4,擷取請求成功響應碼                    if(connection.getResponseCode() == 200) {                        // 5,以流的形式,將資料擷取下來                        InputStream is = connection.getInputStream();                        // 6,將流轉換成字串(工具類封裝)                        String json = StreamUtil.streamToString(is);                        // 記得添加許可權-->android.permission.INTERNET                        Log.i(tag, json);                                            }                                    } catch (MalformedURLException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            };        }.start();    }

運行後可以在logcat中列印下面資訊:

09-23 03:36:36.935: I/SplashActivity(14884): {
09-23 03:36:36.935: I/SplashActivity(14884): "downloadUrl": "http://www.wuyudong.com/XXX.apk",
09-23 03:36:36.935: I/SplashActivity(14884): "versionCode": "2",
09-23 03:36:36.935: I/SplashActivity(14884): "versionDes": "2.0版本發布了,趕緊來下載啊",
09-23 03:36:36.935: I/SplashActivity(14884): "versionName": "2.0"
09-23 03:36:36.935: I/SplashActivity(14884): }

說明請求伺服器json資料成功

Android 手機衛士--構建服務端json、請求網路資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.