Android 網絡請求實現

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









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章