Monday, September 9, 2013

Android ปัญหาการใช้ HttpGet และ HttpPost กับ Android version 3 ขึ้นไป

เนื่องจาก Google ได้มีการบังคับ ThreadPolicy ที่เกี่ยวกับการติดต่ออินเตอร์เน็ตไม่ให้สามารถทำงานตรงๆบน UI Thread ได้ต้องใช้ AsyncTask และ doInBackground เข้ามาใช้งานด้วย ตัวอย่าง

    private class requestHttpTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
          String response = "";
          for (String url : urls) {
            DefaultHttpClient client = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            try {
              HttpResponse execute = client.execute(httpGet);
              if(execute.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
      {
     
      //http ok///

      }

            } catch (Exception e) {
              //e.printStackTrace();
            }
          }
          return response;
        }

        @Override
        protected void onPostExecute(String result) {
          //textView.setText(result);
        }

      }

วิธีเรียกใช้งาน


requestHttpTask task = new requestHttpTask();

task.execute(new String[] { "http://www.tonnark.com" });


อ้างอิงจาก
http://www.elvenware.com/charlie/development/android/SimpleHttpGetThread.html

No comments:

Post a Comment