android 使用httpget访问并获取http资源(httpget的使用)

来源:互联网 发布:自考和网络教育认可度 编辑:程序博客网 时间:2024/04/30 04:36
1.网上很多使用httpget来获取资源的代码,可是都没写全(直接在主线程中使用httpget,会在client.execute(XX)上挂掉),浪费了一段时间。现将整段代码上传,免得耽误时间。以下代码经过验证,可以直接使用。
class MyTask extends AsyncTask<String, Integer, String> {static final String TAG = "MyTask";//onPreExecute方法用于在执行后台任务前做一些UI操作@Overrideprotected void onPreExecute() {Log.i(TAG, "onPreExecute() called");}//doInBackground方法内部执行后台任务,不可在此方法内修改UI@Overrideprotected String doInBackground(String... params) {Log.i(TAG, "doInBackground(Params... params) called");try {HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(params[0]);HttpResponse response = client.execute(get);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {HttpEntity entity = response.getEntity();InputStream is = entity.getContent();BufferedReader reader = new BufferedReader(new InputStreamReader(is));String result = "";String line = "";while (null != (line = reader.readLine())) {result += line;}System.out.println(result);return result;}} catch (Exception e) {Log.e(TAG, e.getMessage());}return null;}//onProgressUpdate方法用于更新进度信息@Overrideprotected void onProgressUpdate(Integer... progresses) {Log.i(TAG, "onProgressUpdate(Progress... progresses) called");}//onPostExecute方法用于在执行完后台任务后更新UI,显示结果@Overrideprotected void onPostExecute(String result) {Log.i(TAG, "onPostExecute(Result result) called");}//onCancelled方法用于在取消执行中的任务时更改UI@Overrideprotected void onCancelled() {Log.i(TAG, "onCancelled() called");}}2.使用方式MyTask task = new MyTask();task.execute("HTTP://XXXXX");
                                             
0 0