httpclient如何实现自身location跳转

zbc814 2014-11-18 05:54:54
各位大神们好:

现遇到一个问题,用httpclient模拟登录一个内部系统后,实现抓取单据自动处理的功能。
现在登陆能够成功,单据列表也能够获取到,但是在进入某个具体单据的时候,返回的是一个重新登录的页面。
问题好像是登录信息丢失掉了,发现问题好像是在“单据列表”页面,用了一个js函数跳转到具体的单据。如下:
function Action(action){
window.location = "http://*.*.*.*:8088"+url;
}

这个url就是单据的一些具体值信息。
这个生成的链接,我单独拿出来在浏览器下就可以运行。
但是在程序里面就会返回登录信息。
我对http协议不是太熟悉,不知道这个location怎么能从httpclient实现。
还望有人给指点一下。
...全文
197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbc814 2014-11-18
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
登录的时候服务器有返回cookie给你,你用这个cookie去访问
我是用这个cookie访问的,因为不用cookie访问的话,单据列表也是获取不到的。
    	BasicCookieStore cookieStore = new BasicCookieStore(); 
    	CloseableHttpClient httpclient = HttpClients.custom().setDefaultRequestConfig(globalConfig)
             .setDefaultCookieStore(cookieStore)
             .build();
使用本地管理的。忘了说一个事情,在进入详细单据的时候,有两个cookie,csd和cod是没有的。具体从哪里获取到的,我还没找到,但是这个值是固定的。我就手动设置进去了,不知道是不是没有设置成功。 添加cookie的代码
	        BasicClientCookie cookie = new BasicClientCookie("csd", "34");
	        cookie.setDomain("***");
	        cookie.setPath("/");
	        BasicClientCookie cookie2 = new BasicClientCookie("cod", "21.333.334");
	        cookie2.setDomain("***");
	        cookie2.setPath("/");
	        cookieStore.addCookie(cookie);
	        cookieStore.addCookie(cookie2);
slwsss 2014-11-18
  • 打赏
  • 举报
回复
登录的时候服务器有返回cookie给你,你用这个cookie去访问

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧