自定义SimpleClient工具操作HttpClient

public class SimpleClient {
  private static HttpParams httpParams;
  private static HttpClient httpClient;
  private static String JSESSIONID; // 定义一个静态的字段,保存sessionID
  public static CookieStore cookieStore;
  private static String mSESSIONID;
 /**
 * @Title: getHttpClient
 * @author Web寻梦狮
 * @date 2016-3-18 下午1:11:18 * @Description: 获取HttpClient
 * @return
 * @throws Exception
 * HttpClient 返回
 */
  public static HttpClient getHttpClient() throws Exception {
          // 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
          httpParams = new BasicHttpParams();
         // 设置连接超时和 Socket 超时,以及 Socket 缓存大小
          HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);
          HttpConnectionParams.setSoTimeout(httpParams, 30 * 1000);
          HttpConnectionParams.setSocketBufferSize(httpParams, 8192);
          // 设置重定向,缺省为 true
          HttpClientParams.setRedirecting(httpParams, true);
          // 设置 user agent
          String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";
          HttpProtocolParams.setUserAgent(httpParams, userAgent);
          // 创建一个 HttpClient 实例
          // 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
          // 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient
          httpClient = new DefaultHttpClient(httpParams);
          return httpClient;
 }
/**
 * @Title: doGet
 * @author Web寻梦狮
 * @date 2016-3-18 下午12:39:58
 * @Description: doGet请求
 * @param url
 * @param params
 * @return
 * @throws Exception
 *    String 返回
 */
 @SuppressWarnings("rawtypes")
 public static String doGet(String url, Map params) throws Exception {
         //get请求建立HTTPGet对象
     String paramStr = "";
     if (params != null) {
	 Iterator iter = params.entrySet().iterator();
		while (iter.hasNext()) {
			Map.Entry entry = (Map.Entry) iter.next();
			Object key = entry.getKey();
			Object val = entry.getValue();
			paramStr += paramStr = "&" + key + "=" + val;
		}
	}
	if (!paramStr.equals("")) {
		paramStr = paramStr.replaceFirst("&", "?");
		url += paramStr;
	}
	//Log.d("url:",url);
	HttpGet httpRequest = new HttpGet(url);
	String strResult = "doGetError";
	//发送请求并等待响应 
	HttpResponse httpResponse = SimpleClient.getHttpClient().execute(httpRequest);
	//若状态码为200 ok
	if (httpResponse.getStatusLine().getStatusCode() == 200) {
	//读返回数据 
		strResult = EntityUtils.toString(httpResponse.getEntity());
	} else {
		strResult = "Error Response: "
				+ httpResponse.getStatusLine().toString();
	}
       //Log.v("strResult", strResult);
	return strResult;
 }
 public static String doPost(String url, List<NameValuePair> params)
			throws Exception {
	System.out.println("执行Post请求:"+url);
	if(params!=null){
		for(NameValuePair param : params){
			System.out.println("参数:"+param.getName() +"="+param.getValue());
		}
	}
		
		
		
	//建立HTTPPost对象
	//params.add(new BasicNameValuePair("JSESSIONID", JSESSIONID));
	//httpClient = new DefaultHttpClient();
	httpClient = SimpleClient.getHttpClient();
	HttpPost httpRequest = new HttpPost(url);
	String strResult = "";
	//添加请求参数到请求对象 
	if (params != null && params.size() > 0) {
		httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
	}
	
       /**
	* if(null != JSESSIONID){ httpRequest.setHeader("Cookie",
	* "JSESSIONID="+JSESSIONID); }
	*/
	
	if (cookieStore != null) {
		((AbstractHttpClient) httpClient).setCookieStore(cookieStore);
	}
	//发送请求并等待响应
	HttpResponse httpResponse = httpClient.execute(httpRequest);
	//若状态码为200 ok
	if (httpResponse.getStatusLine().getStatusCode() == 200) {
		//读返回数据
		strResult = EntityUtils.toString(httpResponse.getEntity());
		//获取cookieStor
		cookieStore = ((AbstractHttpClient) httpClient).getCookieStore();
		 /*
		 * CookieStore cookieStore = ((AbstractHttpClient)
		 * httpClient).getCookieStore(); List<Cookie> cookies =
		 * cookieStore.getCookies(); for(int i=0;i<cookies.size();i++){
		 * if("JSESSIONID".equals(cookies.get(i).getName())){ JSESSIONID =
		 * cookies.get(i).getValue(); break; } }
		 */
		List<Cookie> cookies = cookieStore.getCookies();
	        // 这里是读取指定Cookie 的值
		for (int i = 0; i < cookies.size(); i++) {
			if ("JSESSIONID".equals(cookies.get(i).getName())) {
				mSESSIONID = cookies.get(i).getValue();
				break;
			}
		}
	}
     //	System.out.println(strResult.trim());
	return strResult;
 }

}
注:有不明白的可以留言。





lss博客
请先登录后发表评论
  • 最新评论
  • 总共1条评论
白俊遥博客

小川☆哲梦:呃呃

2017-11-04 15:02:45 回复