2013年12月30日 星期一

Android get Http JSON data

一:開啟 AndroidManifest.xml,加入開啟網路的權限

<uses-permission android:name="android.permission.INTERNET" />

二:宣告一個JSONArray 來存放 JSON資料

JSONArray JSONArray = new JSONArray(); 

三:取得http json資料


try {
//此段是3.0後有限定 http取得資料時間;加上以下 可解除限定時間 start
            if (Integer.parseInt(Build.VERSION.SDK) > 10) {
                StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                        .detectDiskReads()
                        .detectDiskWrites()
                        .detectNetwork() // or .detectAll() for all detectable
                                            // problems
                        .penaltyLog()
                        .build());
                StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                        .detectLeakedSqlLiteObjects()
                        .detectLeakedClosableObjects()
                        .penaltyLog()
                        .penaltyDeath()
                        .build());
            }
                        //此段是3.0後有限定 http取得資料時間;加上以下 可解除限定時間 end
            HttpClient hc = new DefaultHttpClient();
            HttpPost post = new HttpPost("your url");
            StringBuilder builder = new StringBuilder();// 增加一個容器
            HttpResponse rp = hc.execute(post);
            if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(rp.getEntity().getContent(), "UTF8"));
                for (String s = reader.readLine(); s != null; s = reader.readLine()) {
                    builder.append(s);
                }
            }
            JSONObject jsonObjectBMC = new JSONObject(builder.toString());
            try {
                JSONArray = jsonObjectBMC.getJSONArray("data");// 取得JSON資料
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

四.注意傳出的JSON格式。

  {"data":[{"name":"ABC"},{"phone":"12345678"}]}

沒有留言: