Jsp登录后数据采集---奇怪的Apache服务器
有个Jsp制作的站点有需要登录后才可以获取一些信息,一般网站,Asp,ASPX,都是通过Cookie或Session(使用Cookie做标志)保持登录状态,因此先访问登录页获取Cookie,再将Cookie附加到请求中,获取目标页即可, 结果昨天在那个Jsp站点中搞了一个下午无果,POST登录页是成功的,也返回了Seesion信息(如下) ,在设置request.AllowAutoRedirect = false;后可以正确的获取到JSESSIONID,但是把这个JSESSIONID附加到新的请求(需要采集的页面时),服务器始终返回500错误!,
郁闷中反复观察标头信息.
//==============登后返回的标头信息
HTTP/1.1 302 Moved Temporarily
Set-Cookie: JSESSIONID=A8E7B16C1786F6E3D40457CF4258C4C2; Path=/ScoreTable
Location: http://xxx.com:8080/xxx.jsp
Content-Type: text/html;charset=GBK
Content-Length: 0
Date: Thu, 19 Feb 2009 03:07:28 GMT
Server: Apache-Coyote/1.1
//======================
信息中的Location时重定向命令产生的,这个在使用IE时会把页面先定位到 http://xxx.com:8080/xxx.jsp,不过现在使用程序访问应该在获取cookie后可以忽略,直接访问目标页即可(至少在asp,aspx这样的环境中是没问题的)....
最后无奈在程序完成cookie获取后先访问一次http://xxx.com:8080/xxx.jsp,再访问目标页面,结果奇迹出现,数据获取成功,当然2个请求都附加上获取的session标志.
具体原因不知道,推测是Apache服务器的特殊性引起了,它也许会针对某个Session(一个会话)检测Location命令有没有被正确执行, 最后望有达人指点!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述