当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,