是否可以使用apache http client处理弹出窗口?
我正在尝试访问该网站。访问一个特定的页面弹出一个新的窗口,在http响应中我得到了HTML中弹出的新窗口代码。
有没有办法从http客户端重定向到新的弹出窗口?
我的代码
HttpResponse res = null;
HttpEntity entity = null;
DefaultHttpClient defClient = new DefaultHttpClient();
HttpPost httpost = new HttpPost("http://sudhaezine.com/svww_loginform.php?email=guest@xxx.com&password=yyy&brw=safari");
res = defClient.execute(httpost);
entity = res.getEntity();
StringBuffer sb = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
String str;
while ((str = reader.readLine()) != null) {
sb.append(new String(str.getBytes(), "UTF-8"));
}
entity.consumeContent();
这给出了以下回复
<html><head> <title></title></head><META HTTP-EQUIV=refresh content=30;url=thankyou.php><body background="images/bg1.gif"><script language="javascript">var popupstr=''; //var bor = navigator.appName; //alert(bor); doPopUpWindow = window.open("svww_index1.php","StarView",'width=800,height=600,left=0,top=0'+popupstr); // if (!doPopUpWindow) { //Popup blocked open with in current browser window. // doPopUpWindow = window.open("svww_index1.php","_parent",'width='+ screen.availWidth +',height='+ screen.availHeight +',left=0,top=0'+popupstr); // } try{ var obj = doPopUpWindow.name; // window.close();//WindowOpen.close();//alert("Popup blocker NOT detected"); } catch(e){ doPopUpWindow = window.open("svww_index1.php","_parent",'width='+ screen.availWidth +',height='+ screen.availHeight +',left=0,top=0'+popupstr); }</script></body></html>
答案 0 :(得分:1)
您无法使用http客户端自动处理此类弹出窗口,因为它们是通过客户端JavaScript代码创建的。因此,您需要具有JS解释器的客户端(如Web浏览器)。
您可以继续进行逆向工程JavaScript代码,将从响应正文中获取的参数传递给结果函数,并使用http客户端向生成的url发出新请求。此过程称为Web scrapping。