`

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使用

    1. **DefaultHttpClient简介** `DefaultHttpClient`是Apache HttpClient 4.x版本中的默认HTTP客户端实现,它封装了HTTP请求的发起、响应处理和连接管理等操作。这个类提供了一种方便的方式来执行HTTP和HTTPS请求,...

    Android学习之HttpClient练习(一)

    在网络请求过程中,可能会遇到各种错误,例如网络连接问题、超时等。需要适当地处理这些异常。同时,为了提高性能和减少资源消耗,可以通过`BasicHttpParams`或`PoolingHttpClientConnectionManager`来管理连接池。 ...

    DefaultHttpClient_httpsDemo.rar

    在IT行业中,网络通信是应用程序的核心部分,尤其是对于Android开发者来说。`DefaultHttpClient`是Apache HTTP客户端库的一个组件,常用于Android应用中的HTTP请求处理。本示例"DefaultHttpClient_httpsDemo"聚焦于...

    Android的三种网络通信方式

    `java.net.URL`用于表示统一资源定位符,`URLConnection`或`HttpURLConnection`则负责建立和管理网络连接。通过这两个类,开发者可以设置请求头、处理重定向、上传下载数据等。例如,以下代码展示了使用`...

    android 异步访问网络

    1. **异步网络请求的重要性** 在Android中,由于主线程(UI线程)不能长时间执行耗时操作,如网络请求,否则会导致应用无响应(ANR)。因此,异步网络请求是必要的,它将网络操作放到后台线程,保持UI的流畅性。 2...

    Android中与网络交互的处理

    本主题将深入探讨如何在Android中实现网络交互,主要关注使用HttpClient和HttpResponse这两个关键组件。 首先,HttpClient是Android SDK中一个用于执行HTTP请求的库。在Android 6.0(API级别23)之前,HttpClient是...

    Android与Internet接轨Android与Internet接轨Android与Internet接轨

    在Android平台上,与Internet接轨是实现众多功能的基础,如数据交换、在线服务、社交媒体整合等。本文将深入探讨如何在Android应用中实现网络...了解并熟练掌握这些网络连接技术对于开发高质量的Android应用至关重要。

    android连接远程数据库PHP+MYSQL

    尽管Android平台自带了java.sql包,理论上支持多种数据库的JDBC Driver,但在实际应用中,由于设备兼容性、性能、安全性和网络限制等问题,直接从Android设备连接远程数据库并非最佳实践。这不仅可能导致不稳定的...

    老罗Android视频开发教程 android之http协议编程代码

    在Android中,`DefaultHttpClient`是早期常用的实现方式,但现在已被弃用,更推荐使用`HttpURLConnection`或者像OkHttp这样的现代库。POST请求需要设置请求头,特别是Content-Type,然后写入请求体数据。 "myhttp...

    Android网络编程之Http通信

    总之,Android网络编程中的Http通信涉及到了HTTP协议的理解、HttpURLConnection或HttpClient的使用、请求参数的封装、网络连接的管理和优化等多个层面。开发者需要根据实际需求选择合适的方法,并理解其背后的工作...

    Android界面切换与网络通信

    ### Android界面切换与网络通信详解 #### 一、Android界面切换方法 在Android开发中,界面切换是一项基本但非常重要的技能。它可以帮助开发者构建出更加动态且交互丰富的应用。根据提供的部分信息,我们可以将...

    Android网络Http通信(及cmwap处理)

    在Android开发中,网络通信是应用与服务器...在CMWAP环境下,需要对网络连接进行特殊的代理配置,以便应用能正常通过移动网络访问互联网。理解并熟练运用这些技术,可以有效地提高Android应用的网络功能和用户体验。

    Android利用Json来进行网络数据传输

    注意处理可能的异常情况,例如网络连接问题或服务器返回错误。 获取到JSON字符串后,需要解析成Java对象以便进一步处理。在Android 3.0及以上版本,SDK提供了`org.json`包,包含`JSONObject`和`JSONArray`等类,...

    android UDP和TCP的封装

    在Android平台上,网络通信主要涉及两种传输层协议:TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。这两种协议各有特点,适用于不同的应用场景。本篇将详细介绍Android中如何封装和使用TCP...

    android开发网络请求的几种方式

    ### Android开发中的网络请求方式详解 在Android应用开发过程中,网络请求是不可或缺的一部分。通过网络请求,应用程序可以与服务器进行数据交互,实现更多的功能和服务。本文将详细介绍Android开发中常用的几种...

    android Http Post 连接服务器超时Demo

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

    网络编程 Internet应用

    【网络编程与Internet应用在Android中的实践】 在网络编程领域,Android平台提供了多种方式来实现应用程序与互联网的交互。本文将重点介绍使用`HttpURLConnection`和`HttpClient`进行网络请求,以及利用`WebView`...

    android httpclient 访问服务器 获取json数据

    在Android开发中,HTTPClient是常用的网络通信库之一,用于与服务器进行交互,获取或发送数据。本示例主要讲解如何使用HTTPClient访问服务器并获取JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级...

    Android学习之网络接口[参考].pdf

    虽然不直接处理HTTP请求,但Android网络接口在实现网络功能时提供了一些辅助类和API,比如ConnectivityManager用于检测网络连接状态,以及Volley、OkHttp等库,它们是Android平台推荐的网络通信库,提供高性能的HTTP...

Global site tag (gtag.js) - Google Analytics