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;
}
}