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









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