/* * Copyright (C) 2012 www.amsoft.cn * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.ab.http; import android.content.Context; // TODO: Auto-generated Javadoc /** * © 2012 amsoft.cn * 名称:AbHttpUtil.java * 描述:Http执行工具类,可处理get,post,以及异步处理文件的上传下载 * * @author 还如一梦中 * @version v1.0 * @date:2013-10-22 下午4:15:52 */ public class AbHttpUtil { /** 实例化单例对象. */ private AbHttpClient mClient = null; /** 工具类单例. */ private static AbHttpUtil mAbHttpUtil = null; /** * 描述:获取实例. * * @param context the context * @return single instance of AbHttpUtil */ public static AbHttpUtil getInstance(Context context){ if (null == mAbHttpUtil){ mAbHttpUtil = new AbHttpUtil(context); } return mAbHttpUtil; } /** * 初始化AbHttpUtil. * * @param context the context */ private AbHttpUtil(Context context) { super(); this.mClient = new AbHttpClient(context); } /** * 描述:无线程的get请求. * * @param url the url * @param responseListener the response listener */ public void getWithoutThread(String url, AbStringHttpResponseListener responseListener) { mClient.getWithoutThread(url,null,responseListener); } /** * 描述:无线程的get请求. * * @param url the url * @param params the params * @param responseListener the response listener */ public void getWithoutThread(String url, AbRequestParams params, AbStringHttpResponseListener responseListener) { mClient.getWithoutThread(url,params,responseListener); } /** * 描述:无线程的post请求. * @param url the url * @param responseListener the response listener */ public void postWithoutThread(String url,AbStringHttpResponseListener responseListener) { mClient.postWithoutThread(url,null,responseListener); } /** * 描述:无线程的post请求. * @param url the url * @param params the params * @param responseListener the response listener */ public void postWithoutThread(String url,AbRequestParams params,AbStringHttpResponseListener responseListener) { mClient.postWithoutThread(url,params,responseListener); } /** * 描述:无参数的get请求. * * @param url the url * @param responseListener the response listener */ public void get(String url, AbHttpResponseListener responseListener) { mClient.get(url,null,responseListener); } /** * 描述:带参数的get请求. * * @param url the url * @param params the params * @param responseListener the response listener */ public void get(String url, AbRequestParams params, AbHttpResponseListener responseListener) { mClient.get(url, params, responseListener); } /** * * 描述:下载数据使用,会返回byte数据(下载文件或图片). * * @param url the url * @param responseListener the response listener */ public void get(String url, AbBinaryHttpResponseListener responseListener) { mClient.get(url,null,responseListener); } /** * 描述:文件下载的get. * * @param url the url * @param params the params * @param responseListener the response listener */ public void get(String url, AbRequestParams params, AbFileHttpResponseListener responseListener) { mClient.get(url, params, responseListener); } /** * 描述:无参数的get请求. * * @param url the url * @param responseListener the response listener */ public void getWithCache(String url, AbHttpResponseListener responseListener) { mClient.getWithCache(url,null,responseListener); } /** * 描述:带参数的get请求. * * @param url the url * @param params the params * @param responseListener the response listener */ public void getWithCache(String url, AbRequestParams params, AbHttpResponseListener responseListener) { mClient.getWithCache(url, params, responseListener); } /** * * 描述:下载数据使用,会返回byte数据(下载文件或图片). * * @param url the url * @param responseListener the response listener */ public void getWithCache(String url, AbBinaryHttpResponseListener responseListener) { mClient.getWithCache(url,null,responseListener); } /** * 描述:文件下载的get. * * @param url the url * @param params the params * @param responseListener the response listener */ public void getWithCache(String url, AbRequestParams params, AbFileHttpResponseListener responseListener) { mClient.getWithCache(url, params, responseListener); } /** * 描述:无参数的post请求. * * @param url the url * @param responseListener the response listener */ public void post(String url, AbHttpResponseListener responseListener) { mClient.post(url,null, responseListener); } /** * 描述:带参数的post请求. * * @param url the url * @param params the params * @param responseListener the response listener */ public void post(String url, AbRequestParams params, AbHttpResponseListener responseListener) { mClient.post(url, params, responseListener); } /** * 描述:文件下载的post. * * @param url the url * @param params the params * @param responseListener the response listener */ public void post(String url, AbRequestParams params, AbFileHttpResponseListener responseListener) { mClient.post(url, params, responseListener); } /** * 描述:post Json. * * @param url the url * @param params the params * @param responseListener the response listener */ public void postJson(String url, AbJsonParams params, AbStringHttpResponseListener responseListener) { mClient.postJson(url, params, responseListener); } /** * 描述:一般通用请求. * * @param url the url * @param responseListener the response listener */ public void request(String url,AbStringHttpResponseListener responseListener) { request(url,null,responseListener); } /** * 描述:一般通用请求. * * @param url the url * @param params the params * @param responseListener the response listener */ public void request(String url, AbRequestParams params, AbStringHttpResponseListener responseListener) { mClient.doRequest(url, params, responseListener); } /** * 描述:设置连接超时时间(第一次请求前设置). * * @param timeout 毫秒 */ public void setTimeout(int timeout) { mClient.setTimeout(timeout); } /** * 打开ssl 自签名(第一次请求前设置). * @param enabled */ public void setEasySSLEnabled(boolean enabled){ mClient.setOpenEasySSL(enabled); } /** * 设置编码(第一次请求前设置). * @param encode */ public void setEncode(String encode) { mClient.setEncode(encode); } /** * 设置用户代理(第一次请求前设置). * @param userAgent */ public void setUserAgent(String userAgent) { mClient.setUserAgent(userAgent); } /** * 关闭HttpClient * 当HttpClient实例不再需要是,确保关闭connection manager,以释放其系统资源 */ public void shutdownHttpClient(){ if(mClient != null){ mClient.shutdown(); } } /** * * 设置缓存的最大时间. * @return */ public long getCacheMaxAge() { return mClient.getCacheMaxAge(); } /** * * 获取缓存的最大时间. * @param cacheMaxAge */ public void setCacheMaxAge(long cacheMaxAge) { mClient.setCacheMaxAge(cacheMaxAge); } }