Android----http请求工具类

本文介绍了Android项目中客户端与服务器交互使用的HTTP请求工具类,该类基于HttpClients框架。文章探讨了两种HTTP请求方式,一种是全局单例的HttpClient,另一种是每次请求时创建新的HttpClient并自动管理Session。作者选择了后者,并强调用完HttpClient后应及时释放以避免资源浪费。文中附带了主要请求工具类和Session管理的Java代码示例。
摘要由CSDN通过智能技术生成

项目中客户端与服务器端采用http请求进行交互,在这里我把http请求的工具类贴出来。

该工具类采用的是HttpClients框架,HTTP保存方式有两种选择 :一种:整个应用 只创建 一个HttpClient对象,然后保存在整个程序中去。此情况无法创建多线程中应用。
另一种:随时创建HttpClient对象。系统自动保存Session就行。此情况可能对系统资源消耗利害
 用完之后请随时销毁HttpClient,避免系统中存在很多HttpClient对象。在这里我采用的是第二种。

包含两个java文件,第一个是主要的请求工具类文件,第二个主要是保存请求的session,下面见代码:

package com.hlj.padtwo.util.util_public.httputil;



import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.net.ssl.SSLHandshakeException;

import org.apache.http.Header;
import org.apache.http.HttpEntityEnclosingRequest;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.NoHttpResponseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpRequestRetryHandler;
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.params.HttpClientParams;
import org.apache.http.conn.params.ConnRouteParams;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.content.Context;
import android.widget.Toast;

import com.hlj.padtwo.util.application.MyApplication;


/***
 * Http通信中的POST和GET请求方式的不同。GET把参数放在URL字符串后面,传递给服务器。
 * 而POST方法的参数是放在Http请求中,主要用于手机对Http访问提供公共的访问类对象。
 * @author hlj
 * @date
 * @versionn 1.0
 **/
public class HttpClients {
	/** 执行downfile后,得到下载文件的大小 */
	private long contentLength;
	/** 返回连接失败信息 **/
	private String strResult = "服务器无法连接,请检查网络";

	/** http 请求头参数 **/
	private HttpParams httpParams;
	/** httpClient 对象 **/
	private DefaultHttpClient httpClient;


	/** 得到上下文 **/
	private Context context;
	private Activity activity = null;

	public HttpClients(Activity act) {
		this.context = act.getBaseContext();
		this.activity = act;
		getHttpClient();
	}

	/**
	 * 提供GET形式的访问网络请求 doGet 参数示例: Map params=new HashMap();
	 * params.put("usename","helijun"); params.put("password","123456");
	 * httpClient.doGet(url,params);
	 * 
	 * &#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值