论坛首页 Java版

httpclient可不可以模拟当前浏览器发送请求

浏览 3682 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-06-12 关键字: httpclient
我有个A系统,一个B系统,分别在不同的服务器上,A系统有统一认证的功能,当有客户端C访问B时,通过B连到A的统一登录页面并进行了登录,这时我在B的一个jsp里想用httpclient去读取A的一个页面的内容(用户是否登录的页面内容不一样),但却始终得到的是用户没有登录的内容,有没有办法得到登录后的内容呢。
由于A系统判断用户是否登录用到了Cookie,所以问题肯定是由于没有取得Cookie造成的,也就是说用httpclient模拟发送的请求不是从当前浏览器发出的,有没有办法解决呢。
   
最后更新时间:2008-06-12
干脆你在B登陆的时候也用httpclient登录一次
   
0 请登录后投票
最后更新时间:2008-06-12
貌似单点登录的原理不是这样的。
   
0 请登录后投票
最后更新时间:2008-06-12
shilianghui 写道
貌似单点登录的原理不是这样的。

我不是要实现单点登录,单点登录是已经实现了的,我是要读取A的一个页面的内容,但只能读到用户没有登录的内容
   
0 请登录后投票
最后更新时间:2008-06-12
我的理解是你想通过httpclient在系统B中以已登陆用户访问A系统的东西,因为你是用cookie来进行登录信息保存,那么绝对是可以的,你可以在B中获取到当前用户request的cookie,赋值给httpclient,然后httpclient就像一个延伸的浏览器可以访问A系统
   
0 请登录后投票
最后更新时间:2008-06-12
seemoon 写道
我的理解是你想通过httpclient在系统B中以已登陆用户访问A系统的东西,因为你是用cookie来进行登录信息保存,那么绝对是可以的,你可以在B中获取到当前用户request的cookie,赋值给httpclient,然后httpclient就像一个延伸的浏览器可以访问A系统

是的,就是这样。。
在B中获取到当前用户request的cookie,赋值给httpclient
能不能赐教代码。
非常感谢!
   
0 请登录后投票
最后更新时间:2008-06-13
你cookie里没有什么数据的,可以这么做,获取那个客户端的session id,然后把session id传过去,通过那个session id来获取session中的数据,这样应该就可以了。
   
0 请登录后投票
最后更新时间:2008-06-13
我Cookie里有用户登录的Token信息,但是由A系统写入的,由于A和B的域名不一样,从B系统取不到A写入的Cookie信息吧。
   
0 请登录后投票
最后更新时间:2008-06-13
那你在A登录的时候,把A登录生成的Token发一份给B,然后让B从自己的服务器端取。
   
0 请登录后投票
最后更新时间:2008-06-13
seemoon 写道
我的理解是你想通过httpclient在系统B中以已登陆用户访问A系统的东西,因为你是用cookie来进行登录信息保存,那么绝对是可以的,你可以在B中获取到当前用户request的cookie,赋值给httpclient,然后httpclient就像一个延伸的浏览器可以访问A系统

B获取不到C关于A的Cookie

B有A的证书,所有B已经被A信任了,因此httpclient从A里面获取数据直接带上用户名就行了,当然在A里面还需要根据用户名来返回不同的页面
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐