`

Android网络连接1——DefaultHttpClient

 
阅读更多

    Android SDK 支持两种直接访问HTTP资源的方式:DefaultHttpClient 和 HttpURLConnection 。这两种方式都封装了HTTP请求。其中DefaultHttpClient 通过HttpGet 和 HttpPost 分别封装了GET 和 POST 请求。HttpURLConnection 通过URL的构造方法制定HTTP资源地址,然后通过URL.openConnection来获取HttpURLConnection对象。除此之外,可以用 客户端Socket发送HTTP请求。

  本文主要介绍DefaultHttpClient。

  DefaultHttpClient 类以默认的请求属性创建一个HttpClient,该类所在的包:org.apache.http.impl.client.DefaultHttpClient. HttpClient是个很不错的开源框架,封装了访问http的请求头、参数、内容体、响应等。

 

使用步骤:

1、创建Http 客户端对象

2、创建请求对象 

      如果是post,且有上传参数,调用HttpPost的setEntity来设置请求实体

3、执行请求获得响应对象

4、判断状态吗是否等于200

5、如果状态吗等于200,从响应对象中获取响应实体

	// 1、创建HttpPost或者HttpGet对象
	HttpPost httpPost = new HttpPost(
			"http://192.168.1.1/login.asp");
	// HttpGet httpGet = new
	// HttpGet("http://192.168.1.1/login.asp");
	// 2、设置POST请求 必须用NameValuePair对象
	List<NameValuePair> params = new ArrayList<NameValuePair>();
	params.add(new BasicNameValuePair("bookname",
			"笑傲江湖"));
	// UrlEncodedFromEntity类中封装了一个List集合,该集合元素是NameValuePair类,用于向服务器发送或从服务器接收数据。
	UrlEncodedFormEntity entity = new UrlEncodedFormEntity(
			params, HTTP.UTF_8);
	// 3、设置POST请求的参数
	httpPost.setEntity(entity);
	// 4、用execute 方法发送POST请求,并返回HttpResponse对象
	HttpResponse httpResponse = new DefaultHttpClient()
			.execute(httpPost);
	if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
		// EntityUtils类是专门用于处理HttpEntity的帮助类,这里是获得返回结果
		String result = EntityUtils
				.toString(httpResponse.getEntity());
		Log.i("TAG", result);// 输出服务器返回来的数据。
	}

 

注意:Android4.0后,联网操作必须是异步的,不能在UI线程中进行,否则会抛异常。

         android.os.NetworkOnMainThreadException

 

参考:李宁老师的《Android高薪之路》

           http://www.cnblogs.com/devinzhang/archive/2012/01/17/2325092.html

 

 

分享到:
评论

相关推荐

    DefaultHttpClient_httpsDemo.rar

    DefaultHttpClient绕过安全认证访 DefaultHttpClient 请求绕过 https 实例

    android Http Post 连接服务器超时Demo

    new Thread(new Runnable() { public void run() { // TODO Auto-generated method stub try { //设置连接超时 ... DefaultHttpClient httpclient = new DefaultHttpClient( httpParameters);

    DefaultHttpClient使用

    NULL 博文链接:https://username2.iteye.com/blog/1664995

    Android学习之HttpClient练习(一)

    练习HttpClient的一个Demo

    Android使用Apache的HttpClient访问微Web站点

    本实例描述了Android平台下使用Apache开源项目的HttpClient访问网络的示例。分别使用HttpClient下的两个子实现类,DefaultHttpClient和AndroidHttpClient分别进行演示。

    Android 创建HttpPost对象 获取HTTP连接.rar

      HttpResponse httpResponse = new DefaultHttpClient().execute(httpGetRequest);   if(httpResponse.getStatusLine().getStatusCode()==200){//连接成功   String result = EntityUtils.toString...

    android http

    android http 保持连接 1.服务器端就直接用servlet,就有session呀! 2.要是做客服端,有怎么又浏览器?做客服端的话:服务器端发送数据不能是用http协议用response.getWrite()写出去建议用json,客服端接收时你可以...

    android HttpDemo

    android HTTPdemo,分别用HttpURLConnection类,和DefaultHttpClient类 实现了 POST、GET方法

    httpClient及android 原生接口实现下载并显示图片 源码

    《 httpClient及android 原生接口实现下载并显示图片》博客对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17609771

    android读写cookie的方法示例

    做了一个android网络应用,要求用自己实现的webview去访问web网站,并且在远程登录成功之后把cookie写入到手机,保留用作以后的自动登录。找了好多资料。发觉读取cookies倒还用的很普遍,可是通过程序写cookie却没有...

    httpclient jar

    import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.CoreConnectionPNames; import org.apache....

    hello-pinnedcerts:Android 上的证书固定示例

    该过程分为三个步骤: 获取所需主机的证书确保证书为 .bks 格式将证书固定到DefaultHttpClient的实例获取站点的 .pem 证书一种方法是从 Firefox 浏览器。 描述该方法。 这将存储主机的整个证书链,这是推荐的方法。...

    AndroidHttpClient使用Cookie应用分析

    今天想把一个用使用了HttpClient的自动签到小程序移植到Android上,还好Android的SDK自带了HttpClient的包.当然也可以继续使用DefaultHttpClient,但用为Android定制的AndroidHttpClient自然更好

    httpclient过时用的jar包

    httpclient过时用的jar包 , 解决项目升级后httpclient过时程序报错

    android之HttpPostHttpGet使用方法介绍

    直接讲用法,先知道怎么用,再知道怎么回事 1、HttpPost 代码如下: try{ //创建连接 HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(url); //设置参数,仿html表单提交 List...

    Android下通过httpClient发送GET和POST请求的实例代码

    代码如下: public class HttpUtil { public static String ...获取到一个浏览器 HttpClient client = new DefaultHttpClient(); //2.准备请求的地址 try { String arg1 = URLEncoder.encode(name

    Android访问php取回json数据实例

    java代码 代码如下: private void startUrlCheck(String username,String password) { HttpClient client = new DefaultHttpClient(); StringBuilder builder = new StringBuilder(); HttpGet myget = new Ht

    Android抓取CSDN首页极客头条内容完整实例

    今天,写了个小代码。...HttpClient httpClient = new DefaultHttpClient(); //创建一个HttpClient HttpGet httpGet = new HttpGet(“http://www.csdn.net/”); //创建一个GET请求 HttpResponse respons

    Android基站定位原理及实现代码

    代码如下: import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.http.HttpResponse; import org.apache.... import org.apache.http.impl.client.DefaultHttpClient; import org.

    httpClient

    DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); JSONObject response = null; try { StringEntity s = new StringEntity(json.toString()); s.setContentEncoding...

Global site tag (gtag.js) - Google Analytics