文章标签 ‘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> nameValuePair = new ArrayList<NameValuePair>();
	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());
	}

}