Android[中级教程]第九章 网络数据的处理之HttpClient
这一章我们主要来介绍网络数据的传递与处理,相信很多读者都希望做出来的应用能跟网络上的数据进行互动,如微博,论坛之类的,这里我们就要学习网络传输与返回数据的处理,首先网络传递参数有POST跟GET两种协议,做过网页或是学习过的同学应该知道.网页每个表单中都有一个<form action="XXX" method="post">参数,这里method就是提交表单参数使用的协议,当然,协议不止这两种,还有文件上传协议,这我们以后会讲,今天我们首来就来熟悉Android中对于POST跟GET协议的应用,首先我们提供了一个HttpConnectionUtil.java的辅助类,这里面对POST跟GET进行了封装
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.os.Handler;
import android.util.Log;
public class HttpConnectionUtil
{
public static enum HttpMethod
{
GET, POST
}
/**
* 异步连接
*
* @param url
* 网址
* @param method
* Http方法,POST跟GET
* @param callback
* 回调方法,返回给页面或其他的数据
*/
public void asyncConnect(final String url, final HttpMethod method,
final HttpConnectionCallback callback)
{
asyncConnect(url, null, method, callback);
}
/**
* 同步方法
*
* @param url
* 网址
* @param method
* Http方法,POST跟GET
* @param callback
* 回调方法,返回给页面或其他的数据
*/
public void syncConnect(final String url, final HttpMethod method,
final HttpConnectionCallback callback)
{
syncConnect(url, null, method, callback);
}
/**
* 异步带参数方法
*
* @param url
* 网址
* @param params
* POST或GET要传递的参数
* @param method
* 方法,POST或GET
* @param callback
* 回调方法
*/
public void asyncConnect(final String url,
final Map<String, String> params, final HttpMethod method,
final HttpConnectionCallback callback)
{
Handler handler = new Handler();
Runnable runnable = new Runnable()
{
public void run()
{
syncConnect(url, params, method, callback);
}
};
handler.post(runnable);
}
/**
* 同步带参数方法
*
* @param url
* 网址
* @param params
* POST或GET要传递的参数
* @param method
* 方法,POST或GET
* @param callback
* 回调方法
*/
public void syncConnect(final String url, final Map<String, String> params,
final HttpMethod method, final HttpConnectionCallback callback)
{
String json = null;
BufferedReader reader = null;
try
{
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = getRequest(url, params, method);
补充:移动开发 , Android ,