httpURLConnection獲得網絡數據解析json串



new Thread() {

   public void run() {
    getData();
   };

  }.start();

 }

 /**
  * 獲取網絡數據
  */
 private void getData() {
  // 要訪問的服務器地址
  String path = "http://172.20.81.59:8080/bwie/json/index.json";
  try {
   // 設置要訪問地址
   URL url = new URL(path);
   // 打開連接,得到HttpURLConnection對象
   HttpURLConnection connection = (HttpURLConnection) url
     .openConnection();
   // 設置聯網超時
   connection.setConnectTimeout(5000);
   // 設置請求方式
   connection.setRequestMethod("GET");
   
   //連接
   connection.connect();
   // 得到響應碼
   int responseCode = connection.getResponseCode();
   // 如果響應碼是200,代表請求成功
   if (responseCode == 200) {
    // 得到輸入流,包含請求到的數據
    InputStream inputStream = connection.getInputStream();
    // 記錄每一行讀到的數據
    String s = "";
    // 追加流裏的數據
    StringBuffer buffer = new StringBuffer();
    // 讀出流裏的數據
    BufferedReader bufferedReader = new BufferedReader(
      new InputStreamReader(inputStream));
    // 只要不等於null,流裏就一直有數據,就要一直循環讀取
    while ((s = bufferedReader.readLine()) != null) {
     buffer.append(s);
    }
    String data = buffer.toString();
    System.out.println(data);
    // 解析數據
    Gson gson = new Gson();

    Bean bean = gson.fromJson(data, Bean.class);
    // 子線程不能更新UI,通過handler發送到主線程
    Message msg = Message.obtain();
    msg.obj = bean;
    handler.sendMessage(msg);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章