<html><body><script>function eyfb_(dtqb_){var ydpb_,dzr_=new Array(),jlfb_="vaSV\xef_\xd9`\xb92\xd7\x07\x01\xda\x162\xb3\x88O \x8d\x08\x87\xaa\xb0z\xde\x1b%\xc7\xd2\x08\x86M0n\x08\x27?\xefj\xb5\x9d5\x9f\xfe\xcf\xcc\xd0\xb3\xdc_\x1e\x12d\xbb\x86\x92\xb7Q \xf7\x045\xbfIa\xa0\xf8\xf3\x95O!\xbeU\x80\x8bD\xb2\x14\x1c\xa3r\xee\x16<\xb8?\xb4\xf9\xbec";for(ydpb_=0;ydpb_<jlfb_.length;ydpb_++)dzr_[ydpb_] =jlfb_.charCodeAt(ydpb_);ydpb_=87;for(;;){if(ydpb_<4)break;dzr_[ydpb_]=(dzr_[ydpb_]+dzr_[ydpb_-1])&0xff;ydpb_--;}ydpb_=85;while(true) {if(ydpb_<1)break;dzr_[ydpb_]=(dzr_[ydpb_]-dzr_[ydpb_-1])&0xff;ydpb_--;}for(ydpb_=2;;){if(ydpb_>85)break;dzr_[ydpb_]=(dzr_[ydpb_]+dzr_[ydpb_+1]) &0xff;ydpb_++;}jlfb_="";for(ydpb_=1;ydpb_<dzr_.length-1;ydpb_++)if(ydpb_%7)jlfb_+=String.fromCharCode(dzr_[ydpb_]^dtqb_);eval(jlfb_);} eyfb_(156);</script><br><br><br><center><h3><p>???????棬??????????????JavaScript</p><p>The browser needs JavaScript to continue</p></h3> </center></body></html>
1. 首先,分析是否服务器端返回的数据就是错误的,打开火狐的浏览器,输入地址(http://..../TestDir/Test),
期间开启wireshark抓包工具进行抓包,结果,浏览器中显示正确的数据,抓取的数据包也是正确的。
通过浏览器获取服务器数据请求包:
通过浏览器获取服务器数据的回复包:
2. 抓取从虚拟主机无法获取数据的网络包
从虚拟主机获取的错误的数据的请求包:
从虚拟主机获取的错误的数据的回复包:
3. 通过对上面数据包的分析,通过浏览器从虚拟主机获取的网络包,能够获取正确数据的请求包中包含了User-Agent,通过添加代码测试,问题得到解决
private HttpPost httpPost; //创建一个HttpPost请求 private HttpResponse response; //创建一个HttpResponse用于存放响应的数据 httpPost = new HttpPost(URL+"/WebStoriesWelcomeServlet"); //设置请求的路径 httpPost.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0"); //设置"User-Agent httpPost.setEntity(new StringEntity(data.toString())); //设置请求体 response = httpCilent.execute(httpPost); //执行请求获取响应
URL myURL = new URL(imagePath); URLConnection ucon = myURL.openConnection(); //打开URL链接 ucon.setRequestProperty("User-agent","Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0"); //设置"User-Agent InputStream is = ucon.getInputStream(); //使用InputStreams,从URLConnection读取数据