`
iaiai
  • 浏览: 2149240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android HttpClient网络通信

阅读更多
封装Get/Post两种提交的方法类,
HttpUtil.java类:
package com.water.activity;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;

public class HttpUtil {

	/**
	 * http访问数据,默认返回的数据为UTF-8编码
	 * 
	 * @param url
	 *            url地址
	 * @param method
	 *            提交方式
	 * @return
	 * @throws IOException
	 */
	public static String getUrl(String url) throws IOException {
		HttpGet request = new HttpGet(url);
		HttpClient httpClient = new DefaultHttpClient();
		HttpResponse response = httpClient.execute(request);
		if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
			return EntityUtils.toString(response.getEntity());
		} else {
			return "";
		}
	}

	/**
	 * post提交数据
	 * 
	 * @param url
	 *            提交地址
	 * @param params
	 *            参数
	 * @return
	 * @throws ClientProtocolException
	 * @throws IOException
	 */
	public static String postUrl(String url, Map<String, String> params)
			throws ClientProtocolException, IOException {
		return postUrl(url, params, "UTF-8");
	}

	/**
	 * post提交数据
	 * 
	 * @param url
	 *            提交地址
	 * @param params
	 *            参数
	 * @param encoding
	 *            参数编码
	 * @return
	 * @throws ClientProtocolException
	 * @throws IOException
	 */
	public static String postUrl(String url, Map<String, String> params,
			String encoding) throws ClientProtocolException, IOException {
		List<NameValuePair> param = new ArrayList<NameValuePair>(); // 参数
		// param.add(new BasicNameValuePair("par", "request-post"));
		// //这个参数我不知道是不是非要加这个

		// 添加参数
		Iterator<Entry<String, String>> iterator = params.entrySet().iterator();
		while (iterator.hasNext()) {
			Entry<String, String> entry = iterator.next();

			param.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
		}

		HttpPost request = new HttpPost(url);
		HttpEntity entity = new UrlEncodedFormEntity(param, encoding);
		request.setEntity(entity);

		HttpClient client = new DefaultHttpClient();
		client.getParams().setParameter(
				CoreConnectionPNames.CONNECTION_TIMEOUT, 10000); // 设置请求超时时间
		client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000); // 读取超时

		HttpResponse response = client.execute(request);
		if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
			return EntityUtils.toString(response.getEntity());
		} else {
			return null;
		}
	}

}

MyList.java类:
package com.water.activity;

import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;

public class MyList extends Activity {

	private EditText editView;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		try {
			Map map = new HashMap<String, String>();
			map.put("name", "name");
			map.put("password", "password");

			String content = HttpUtil.postUrl("http://www.163.com", map);
			if (content == null) {
				Log.i("MyList", "返回值有问题!");
			} else {
				Log.i("MyList", content);
			}
		} catch (Exception e) {
			Log.i("MyList", "运行出错!");
		}
	}

}
分享到:
评论
1 楼 wenzhixin 2012-06-18  
谢谢分享~学习了

相关推荐

    android网络通信最常用三种方式 URL,HTTPClient,Socket

    含客户端与服务器端的Demo,带有详细的注释,其中URL可用于下载、加载服务器资源,httpclient可用于传输数据(get/post方式传递json),socket可用于点对点即时通信;望大家多多批评、指教!

    Android中通过GET和POST方式以及使用HttpClient框架通过网络通信提交参数给web应用案例

    Android中通过GET和POST方式以及使用HttpClient框架通过网络通信提交参数给web应用案例!

    Android网络通信(HttpURLConnection与HttpClient)、实时更新

    该压缩包中包含3个小程序,第一个是使用HttpURLConnection获取网络资源,包括直接获取、使用get方式...第二个小程序是使用HttpClient获取网络资源,包括get方式和post方式;第三个小程序是实时更新,每隔5秒钟更新显示

    android http通信demo

    android 当中涉及到网络编程的部分经常会用到http通信,同时android也为我么您提供了HttpUrlConnection接口和HttpClient接口,大大的方便了开发。Http通信又分为两种方式:get和post,get可以uoqu静态页面,传入参数...

    android socket、http等6种网络通信源码

    包含android网络通信的6种方式源码,有socket、http、web、servlet等多种途径实现实例,可以练习使用。

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

    HttpURLConnection和HttpClient接口的get post访问 cmwap下代理

    通信与网络中的基于HttpClient的Android远程数据库访问

    本文主要运用HttpClient组件,完成对远程数据库的访问,实现Android客户端对远程服务器数据的调用及修改。  1.引言  虽然Android本身具有SQLite的支持,但SQLite数据只能进行简单的CRUD操作,数据类型也不能太...

    Android使用http协议与服务器通信的实例

    首先,需要明确一下http通信流程,Android目前提供两种http通信方式,HttpURLConnection和HttpClient,HttpURLConnection多用于发送或接收流式数据,因此比较适合上传/下载文件,HttpClient相对来讲更大更全能,但是...

    Android移动开发-使用OkHttp读取网络资源的实现

    Android网络框架之OkHttp是一个...OkHttp不仅在接口封装上画面做的简单易用,就连在底层实现上也是自成一派,比起原生的HttpURLConnection可以说是有过之而无不及,现在已经成了广大Android开发者首选的网络通信库。

    Android网络通信

    android与服务器间的通信开发,利用URL,URLConnection,HTTPClient开发

    Android网络通信的实现方式

    Android网络编程分为两种:基于http协议的,和基于socket的。 基于Http协议:HttpClient、HttpURLConnection、AsyncHttpClient框架等 基于Socket: (1)针对TCP/IP的Socket、ServerSocket (2)针对UDP/IP的...

    Android的网络与通信应用程序设计PPT

    (1)理解HTTP协议、URL请示的类别 (2)理解并掌握Android的线程与Hander消息机制 (3)学会使用HttpURLConnection访问网络 (4)学会使用HttpClient访问网络

    android开发揭秘PDF

    8.4 网络通信的中文乱码问题 8.5 WebKit应用 8.5.1 WebKjt概述 8.5.2 WebView浏览网页 8.5.3 WebView与Javascript 8.6 WtFi介绍 8.7 蓝牙 8.8 小结 第9章 Android特色开发 9.1 传感器 9.2 语音识别 9.3 GoogleMap ...

    Android Volley Jar框架 v2017.3.17.zip

    于是乎,一些Android网络通信框架也就应运而生,比如说AsyncHttpClient,它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作了。再比如Universal-Image-Loader,它使得在界面上...

    《httpClient 4.X与PHP服务器通信详解》 对应源码

    《httpClient 4.X与PHP服务器通信详解》博文对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17416417

    Android通过HttpURLConnection和HttpClient接口实现网络编程

    Android中提供的HttpURLConnection和HttpClient接口可以用来开发HTTP程序。以下是学习中的一些经验。 1、HttpURLConnection接口  首先需要明确的是,Http通信中的POST和GET请求方式的不同。GET可以获得静态页面,...

    Android实验七.doc

    【实验要求】 1、 练习使用 HttpClient 建立网络连接,访问网络数据 2、 练习 XML 数据解析方法 3、 完成实验报告 二、实验内容 1、 电脑连接网络; 2、 新建 Android 应用程序项目 WeatherClient; 3、 业务逻辑代码...

    Android开发案例驱动教程 配套代码

    15.2.1 网络通信技术介绍 376 15.2.2 Java URL类实现方式 377 15.2.3 Apache HttpClient实现方式 378 15.3 数据交换格式 380 15.3.1 纯文本格式 381 15.3.2 XML格式 381 15.3.3 JSON格式 385 15.4 自定义...

    《Android应用开发揭秘》附带光盘代码.

     8.4 网络通信的中文乱码问题  8.5 WebKit应用  8.5.1 WebKjt概述  8.5.2 WebView浏览网页  8.5.3 WebView与Javascript  8.6 WtFi介绍  8.7 蓝牙  8.8 小结  第9章 Android特色开发  9.1 传感器  9.2 ...

    Android应用开发揭秘pdf高清版

    8.4 网络通信的中文乱码问题 8.5 WebKit应用 8.5.1 WebKjt概述 8.5.2 WebView浏览网页 8.5.3 WebView与Java 8.6 WtFi介绍 8.7 蓝牙 8.8 小结 第9章 Android特色开发 9.1 传感器 9.2 语音识别 9.3 GoogleMap 9.3.1 ...

Global site tag (gtag.js) - Google Analytics