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命令有沒有被正確執行, 最后望有達人指點!
轉載于:https://www.cnblogs.com/wdfrog/archive/2009/02/19/1393793.html
總結
以上是生活随笔為你收集整理的Jsp登录后数据采集---奇怪的Apache服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入解读ADO.NET2.0的十大最新特
- 下一篇: 天生一对Maven2+Jetty --