一、抓包
url = 'aHR0cDovL3d3dy55amZ3LmNuLw=='
从下图中可以看出,打开网页请求了三次,前两次在response中并不返回网页内容。
二、代码模仿第一次请求返回
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="cache-control" content="no-store" /><meta http-equiv="Connection" content="Close" /><script>function JumpSelf(){ self.location="/?WebShieldSessionVerify=25t9Mw1vzkt4jgGTLwaV";}</script><script>setTimeout("JumpSelf()",700);</script></head><body></body></html>
由返回的代码看出,需设置url:
url2 = url + '?WebShieldSessionVerify=25t9Mw1vzkt4jgGTLwaV'
进行第二次请求,返回:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="cache-control" content="no-store" /><meta http-equiv="Connection" content="Close" /><script>function JumpSelf(){ self.location="/";}</script><script>setTimeout("JumpSelf()",700);</script></head><body></body></html>
对url进行第三次请求,即可返回正文。
ps:不需关注cookie中的JSESSIONID参数;如果直接模拟第三个返回数据的请求,有时候能正常返回,有时不能,与proxy无关。