现在想用httpclient抓取某个页面的数据,但其数据是根据一个ajax脚本动态获取的,请问如何在java里面模拟ajax获得表格里的数据呢?[ 网页url:http://quote1.fx168.com/ajnew/bank_gold3.aspx ]
在这个网页里面,用来获取数据的js的url是
http://quote1.fx168.com/AjNew/ajaxpro/Currency.Currency,Currency.ashx
通过检测可以确定发送的是post请求,url已知如上,并且post一个参数,现在想用httpclient等在java内部实现模拟该post请求,获得返回数据。我试了下,仍然没有成功。 大家指点下吧 非常感谢
部分测试代码
---------------------------------------------------------------------------------------------
HttpPost httpost = new HttpPost(url);
List<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("controlid","CS30SV9SCKLAX9FSDS3HHYFUCTJR16N5G"));
httpost.setHeader("X-AjaxPro-Method", "GetDataSource");
httpost.setHeader("X_REQUESTED_WITH", "XMLHttpRequest");
httpost.setHeader("Referer","http://quote1.fx168.com/ajnew/bank_gold3.aspx");
httpost.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13");
httpost.setHeader("Accept","text/xml,text/javascript,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
httpost.setHeader("Accept-Language", "zh-cn,zh;q=0.5;en-us;q=0.7,en;q=0.3");
httpost.setHeader("Accept-Charset", "gb2312,utf-8;q=0.7,*;q=0.7;ISO-8859-1,utf-8,GBK,GB2312;q=0.7,*;q=0.7");
httpost.setEntity(new UrlEncodedFormEntity(param,HTTP.UTF_8));
HttpResponse resp = client.execute(httpost);
InputStream content = resp.getEntity().getContent();