HttpRequestImp.java
public class HttpRequestImpl implements IHttpRequest {
/**
* 网络加载失败的时候重复加载的次数
*/
private static final int REPEAT_NUM = 1;
private IHttpRequestCallback mCallback ;
private int mTag ;
private static HttpClient customerHttpClient;
public HttpRequestImpl(Context context){
}
@Override
public void startRequest(String requestUrl, List<BasicNameValuePair> params, IHttpRequestCallback callback ,boolean bPost , int tag) {
}
class HttpRequestThread extends Thread{
/**
* 标示请求方法默认为post方法
*/
private boolean bPost = true;
/**
* 请求的地址
*/
private String mRequestUrl;
private List<BasicNameValuePair> mParams = null;
private HttpClient mHttpClient = null;
HttpRequestThread(String requestUrl, List<BasicNameValuePair> params , boolean post){
/**构造函数*/
}
@Override
public void run() {
/**以错误码方式网络请求*/
}
private int doRequest(){
//以Post和Get两种方式进行网络请求
try {
//获取HttpEntity的流
//CharArrayBuffer形式读入resultJson
//调用回调,判断响request是否完成
} catch (IOException e) {
e.printStackTrace();
return ERROR_CODE_NET_ERROR ;
}
if(httpResponse != null){
try {
httpResponse.getEntity().consumeContent();
} catch (IOException e) {
}
}
return ERROR_CODE_NO_ERROR ;
}
/** post方式通过urlStr 获取HttpPost */
public HttpPost getHttpPostFromUrlStr(String urlStr) throws MalformedURLException {
httpRequest.setHeader("Accept-Encoding", "gzip");
return httpRequest;
}
//Get方式通过urlStr 获取HttpGet
public HttpGet getHttpGetFromUrlStr(String urlStr) throws MalformedURLException {
httpRequest.setHeader("Accept-Encoding", "gzip");
return httpRequest;
}
}
public static synchronized HttpClient getHttpClient() {
if(null==customerHttpClient){
/**多线程启动两个客户端*/
/**设置我们的HttpClient支持HTTP和HTTPS两种模式*/
/**使用线程安全的连接管理来创建HttpClient*/
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
customerHttpClient = new DefaultHttpClient(conMgr ,params );
}
return customerHttpClient;
}
}