HttpClient使用SESSIONID模拟用户发送请求

来源:互联网 发布:iso9126软件质量模型 编辑:程序博客网 时间:2024/06/05 17:59

使用HttpClient版本 4.2.5

 

准备一已登录用户的sessionid:

Java代码  收藏代码
  1. public static void main(String[] args) {  
  2.       
  3.     String url = "http://10.10.10.90/urcweb/api/http.do?method=get_im_info";  
  4.       
  5.     Map<String,String> header = new HashMap<String,String>();  
  6.     header.put("Cookie""JSESSIONID=C1A34A2EC4C9423BB460E6F7005CA81E");  
  7.     System.out.println(httpGet(url,null,header));  
  8. }  
  9.   
  10. /** 
  11.  * 发送 get 请求 
  12.  * @param url 
  13.  * @param encode 
  14.  * @param headers 
  15.  * @return 
  16.  */  
  17. public static String httpGet(String url,String encode,Map<String,String> headers){  
  18.     if(encode == null){  
  19.         encode = "utf-8";  
  20.     }  
  21.     String content = null;  
  22.     DefaultHttpClient httpclient = new DefaultHttpClient();  
  23.        HttpGet httpGet = new HttpGet(url);  
  24.         
  25.        //设置 header  
  26.        Header headerss[] = buildHeader(headers);  
  27.        if(headerss != null && headerss.length > 0){  
  28.         httpGet.setHeaders(headerss);  
  29.        }  
  30.        HttpResponse http_response;  
  31.     try {  
  32.         http_response = httpclient.execute(httpGet);  
  33.         HttpEntity entity = http_response.getEntity();  
  34.         content = EntityUtils.toString(entity, encode);  
  35.     } catch (Exception e) {  
  36.         e.printStackTrace();  
  37.     }finally {  
  38.            httpGet.releaseConnection();  
  39.        }  
  40.        return content;  
  41. }  
  42.   
  43. /** 
  44.  * 组装请求头 
  45.  * @param params 
  46.  * @return 
  47.  */  
  48.    public static Header[] buildHeader(Map<String,String> params){  
  49.     Header[] headers = null;  
  50.     if(params != null && params.size() > 0){  
  51.         headers = new BasicHeader[params.size()];  
  52.         int i  = 0;  
  53.         for (Map.Entry<String, String> entry:params.entrySet()) {  
  54.             headers[i] = new BasicHeader(entry.getKey(),entry.getValue());  
  55.             i++;  
  56.         }  
  57.     }  
  58.     return headers;  
  59.    }  

 

测试结果:

成功模拟了该登录用户,如:输出信息如下:

Java代码  收藏代码
  1. {"friends":[{"id":7,"gname":"我的好友","type":null},{"id":0,"gname":"未分组","gmember":[]}],"extinfo":null,"userinfo":{"uid":"PTADMIN","icon":null,"skill":"1","user_type":"9510","uname":"平台运营者","userId":"PTADMIN"}}