cognos退出,可以使用浏览器访问:
http://server/cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/logoff.xts&h_CAM_action=logoff但是我想在java代码中,退出cognos,将这个链接作为参数,结果无法退出。
可能是cognos的cookie所致?
但是却无法在代码中获得?
下面是我写的退出代码:
  HttpClient httpClient = new HttpClient();
  GetMethod getMethod = new GetMethod("
http://server/cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/logoff.xts&h_CAM_action=logoff
");
  try {
  int statusCode = httpClient.executeMethod(getMethod);
  if (statusCode != HttpStatus.SC_OK) {  
  System.err.println("Method failed: " + getMethod.getStatusLine());
  }   
  // 读取内容  
  byte[] responseBody = getMethod.getResponseBody();
  // 处理内容
  String html = new String(responseBody);
  System.out.println(html);
  } catch (Exception e) {
  System.err.println("页面无法访问");
  }
  getMethod.releaseConnection();  实际上使用cgi访问的cognos是用浏览器直接和cognos交互,而不和集成了cognos门户有关联,所以退出应该使用浏览器
,如果使用java代码的话,应该将cookie和session的去掉?
问题是如何做呢?

解决方案 »

  1.   

    通过用户名和密码登录cognos,作为用户标识,可能会将用户信息存在session或cookie中,或者通过其它方式。访问cgi传入参数b_action=xts.run m=portal/logoff.xts h_CAM_action=logoff
    这三个键值对。 因为不太了解http协议。但是如果通过java的反射机制的话,你这种貌似也是行不通的。我理解的cognos的cgi是统一的入口,只需要往里面传入对应的参数即可调用相应的方法