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与Asynctask与服务器的结合使用
前面一篇Android开发笔记之:AsyncTask的应用较为详细的讲述了Asynctask的原理与应用,这里来结合使用一下HttpClient与Asynctask~ 代码编写如下: 服务器代码我就不写出来了,就是一个用户名和密码~ 1.写一个类...
AsyncTask 利用下载httpclient网络图片,有进度提示
该Demo主要介绍使用HttpClient获取网络数据,然后经过JSON后显示出来。另外本文章用到了常用的异步加载技术,AsyncTask类。
HttpClient异步请求数,使用了Asynctask
一个简单的异步下载,设计到AsyncTask,HttpClient的练习。练手,学习交流
实现功能:扭曲 说明:用httpclient 实现在线图片的下载展示,并实现图片处理。...技术:View,Bitmap,Canvas,AsyncTask,httpclient 来实现其基本功能。部分有注释,例子;来自哪里也还有说明。
android网络请求,使用AsyncTask与HttpClient来完成
使用AsyncTask加httpClient 和http加handler实现请求网络数据
根据传入的对象类型(支持list),参数,请求URL地址,利用httpclient进行远程接口调用返回,并自动封装返回对象。简单调用示例如下: new AsyncTask, AppException, Void>() { @Override protected Void ...
网络通讯新框架volly相关实际应用,优于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)
Java的线程回顾 匿名内部类 Android的多线程技术之Handler Android的多线程技术之AsyncTask HTTP概述 HTTPClient
HttpURLConnection与HttpClient volley-retrofit-okhttp之我们该如何选择网路框架 Volley源码分析 Retrofit详解(上) Retrofit详解(下) Dagger2 1.Dagger2简介(一).md 2.Dagger2入门demo(二).
如何通过Basic HttpClient完成API通信(尽管仅使用GET) 2。 在后台使用AsyncTask是一件要做的事,而在后台要做另一件事。 3。 自定义动画。 4, 自定义Webview和自定义下载管理器5。 出色的Picasso图像加载程序库...
在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于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 获取网页,显示加载进度,并在WebView上展示。
|--httpclient超时 |--info体系 |--Intent启动应用apk安装 |--Intent常用功能 |--IO将输入流转成字节 |--Json读js资源文件 |--layout布局样式之style配置 |--listview 页面 图片加文字 |--ListView之CursorAdapter...
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 ...
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中定义服务接口 ...