`

httpClient + AsyncTask

阅读更多
package lee.HttpClientDemo;
import java.io.InputStream;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	private Button but;
	private TextView context;
	String str="abc" ;
	private ProgressDialog progressDlg; 
	
	Handler handler=new Handler(){

		@Override
		public void handleMessage(Message msg) {
			if (msg.what==1) {
				progressDialog.dismiss();
				System.out.println(str);
				context.setText(str);
			}

			super.handleMessage(msg);
		}
		
	};
	
	
	private ProgressDialog progressDialog = null;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        context=(TextView) findViewById(R.id.context);
        but=(Button) findViewById(R.id.but);
        but.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
//				progressDialog = ProgressDialog.show(MainActivity.this,"连接","正在连接中", true);
				HttpClientTask clientTask=new HttpClientTask();
				clientTask.execute();
				
				
				
//				new Thread(){
//					public void run(){
//						try {
//							String path = "http://google.com";
//							HttpGet httpGet = new HttpGet(path);
//							HttpParams httpParameters = new BasicHttpParams(); 
//							HttpConnectionParams.setConnectionTimeout(httpParameters, 11000);  
//							HttpConnectionParams.setSoTimeout(httpParameters, 11000); 
//							DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 
//							HttpResponse response;
//							response = httpClient.execute(httpGet);
//							str = EntityUtils.toString(response.getEntity());
//							
//							 handler.sendEmptyMessage(1);
//						} catch (Exception e) {
//							 handler.sendEmptyMessage(1);
//							e.printStackTrace();
//						} 
//					}
//				}.start();
			}
		});
    }
	
	public class HttpClientTask extends AsyncTask{

		@Override
		protected Object doInBackground(Object... params) {
			
			try {
				String path = "http://google.com";
				HttpGet httpGet = new HttpGet(path);
				HttpParams httpParameters = new BasicHttpParams(); 
				HttpConnectionParams.setConnectionTimeout(httpParameters, 1000);  
				HttpConnectionParams.setSoTimeout(httpParameters, 1000); 
				DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 
				HttpResponse response;
				response = httpClient.execute(httpGet);
				InputStream is = response.getEntity().getContent();	//获取输入流
				str = EntityUtils.toString(response.getEntity());	//获取字符串
			
			}catch (Exception e) {
				System.out.println(e.toString());
			}
			return str;
		}

		@Override
		protected void onCancelled() {
			// TODO Auto-generated method stub
			super.onCancelled();
		}

		@Override
		protected void onPostExecute(Object result) {
			progressDlg.dismiss();
			context.setText(result.toString());
			super.onPostExecute(result);
		}

		@Override
		protected void onPreExecute() {
			  progressDlg = new ProgressDialog(MainActivity.this); 
			  progressDlg.setMessage("请稍等..."); 
			  progressDlg.setCancelable(false); 
			  progressDlg.show(); 
			super.onPreExecute();
		}

		@Override
		protected void onProgressUpdate(Object... values) {
			// TODO Auto-generated method stub
			super.onProgressUpdate(values);
		}
	}
}

 

分享到:
评论

相关推荐

    使用HttpClient异步请求数据

    HttpClient与Asynctask与服务器的结合使用

    Android开发之HttpClient异步请求数据的方法详解【附demo源码下载】

    前面一篇Android开发笔记之:AsyncTask的应用较为详细的讲述了Asynctask的原理与应用,这里来结合使用一下HttpClient与Asynctask~ 代码编写如下: 服务器代码我就不写出来了,就是一个用户名和密码~ 1.写一个类...

    AsyncTask Demo

    AsyncTask 利用下载httpclient网络图片,有进度提示

    Android HttpClient与Json解析

    该Demo主要介绍使用HttpClient获取网络数据,然后经过JSON后显示出来。另外本文章用到了常用的异步加载技术,AsyncTask类。

    HttpClient异步请求数据

    HttpClient异步请求数,使用了Asynctask

    AsyncTask练习,下载图片

    一个简单的异步下载,设计到AsyncTask,HttpClient的练习。练手,学习交流

    Android drawBitmapMesh扭曲图像 工程代码导入即可使用

    实现功能:扭曲 说明:用httpclient 实现在线图片的下载展示,并实现图片处理。...技术:View,Bitmap,Canvas,AsyncTask,httpclient 来实现其基本功能。部分有注释,例子;来自哪里也还有说明。

    NetRequestDemo

    android网络请求,使用AsyncTask与HttpClient来完成

    请求网络数据的工具包,通过接口回掉实现

    使用AsyncTask加httpClient 和http加handler实现请求网络数据

    json工具类

    根据传入的对象类型(支持list),参数,请求URL地址,利用httpclient进行远程接口调用返回,并自动封装返回对象。简单调用示例如下: new AsyncTask, AppException, Void>() { @Override protected Void ...

    Volley例子

    网络通讯新框架volly相关实际应用,优于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)

    移动编程之线程

    Java的线程回顾 匿名内部类 Android的多线程技术之Handler Android的多线程技术之AsyncTask HTTP概述 HTTPClient

    Android代码-AndroidNote Android笔记

    HttpURLConnection与HttpClient volley-retrofit-okhttp之我们该如何选择网路框架 Volley源码分析 Retrofit详解(上) Retrofit详解(下) Dagger2 1.Dagger2简介(一).md 2.Dagger2入门demo(二).

    EbookDownloader:基于It-ebooks.info API的电子书搜索和下载器应用程序

    如何通过Basic HttpClient完成API通信(尽管仅使用GET) 2。 在后台使用AsyncTask是一件要做的事,而在后台要做另一件事。 3。 自定义动画。 4, 自定义Webview和自定义下载管理器5。 出色的Picasso图像加载程序库...

    Volley实例

    在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的...

    美食家点餐

    )Android常用UI组件(CheckBox、Button、TextView…)、AsyncTask异步获取JSON数据、SQLite数据库的使用、自定义Adapter、JSON数据解析、BroadcastReceiver的使用、Spinner的使用、Dialog的使用、httpClient通信、get...

    android 获取网页,显示加载进度

    android 获取网页,显示加载进度,并在WebView上展示。

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--httpclient超时 |--info体系 |--Intent启动应用apk安装 |--Intent常用功能 |--IO将输入流转成字节 |--Json读js资源文件 |--layout布局样式之style配置 |--listview 页面 图片加文字 |--ListView之CursorAdapter...

    一本android的好书beginning android 2 和 源码

    HTTP Operations via Apache HttpClient Parsing Responses Stuff to Consider ■Chapter 26: Using a Content Provider Pieces of Me Getting a Handle Makin’ Queries Adapting to the Circumstances Give ...

    精通ANDROID 3(中文版)1/2

    11.1.10 使用AsyncTask处理配置更改  11.1.11 使用DownloadManager获取文件  11.2 使用Android服务  11.2.1 Android中的服务  11.2.2 本地服务  11.2.3 AIDL服务  11.2.4 在AIDL中定义服务接口  ...

Global site tag (gtag.js) - Google Analytics