文章标签 ‘json’
20115 月4

Android 手机端与服务端POST数据交互类

 

package com.wizzer.tools;

import java.io.*;
import java.net.URLEncoder;

import java.util.*;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;

public class BaseProtocol 
{
    private StringBuilder sb = new StringBuilder();
    private HttpClient httpClient;
    private HttpPost httpRequest;
    private HttpResponse response;
    private List nameValuePair = new ArrayList();
    private static final int DIALOG1_KEY = 0;
    private static final int DIALOG2_KEY = 1;

    public BaseProtocol()
    {
        httpClient = new DefaultHttpClient();
    }

    /**
     * *向服务器端发送请求 * *@paramurl *@throwsException
     * 
     * @throws UnsupportedEncodingException
     */
    public void pack(String url) throws Exception
    {
        httpClient = new DefaultHttpClient();
        httpRequest = new HttpPost(url);
        httpRequest.setEntity(new UrlEncodedFormEntity(nameValuePair));
        response = httpClient.execute(httpRequest);
    }

    /** *得到返回数据 * *@paramurl *@return *@throwsException */

    public String parse() throws Exception
    {
        // TODO状态处理500200
        if (response.getStatusLine().getStatusCode() == 200)
        {
            BufferedReader bufferedReader2 = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2.readLine())
            {
                sb.append(s);
            }
        }
        return sb.toString();
    }

    /***
     * 向服务器发送信息 * *@paramkey *@paramvalue
     * 
     * @throws UnsupportedEncodingException
     */
    public void addNameValuePair(String key, String value) throws UnsupportedEncodingException
    {
        nameValuePair.add(new BasicNameValuePair(key, URLEncoder.encode(value, HTTP.UTF_8)));
    }

    /** *返回JSONArray对象数据模型 * *@return *@throwsJSONException */

    public JSONArray getJSON() throws JSONException
    {
        return new JSONArray(sb.toString());
    }

}