模拟请求:以.dwr结尾的url

前端之家收集整理的这篇文章主要介绍了模拟请求:以.dwr结尾的url前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

写在前面的话:头一次爬取这样的请求,用博客的形式记录一下。

DWR网上查了一下,说是ajax开源框架:Direct Web Remoting。不管怎么样,想要的信息就在这个请求的中,抓包工具看一下请求参数是这样的:


好吧,既然找到了参数,就开始模拟吧。这就遇到了第一个坑,scriptSessionid这个参数是变的,ctrl+f查找一下这个参数,查不到从哪一个请求中产生的。上网查一下,发现也有人遇到过,http://www.sufeinet.com/thread-1759-1-1.html,我去,显示解决,兴奋的看了看贴吧,好吧,还是让我在页面中找,可是我是真找不到呀。哈哈,多亏了同事的帮忙,发现有个engine.js请求中有和这个参数很像的一个参数,就是少三位数字,怪不得查不到(ps:我是搜的74D536FEF48F67B49E0D868629A60F1E195,少三位当然搜不到。)

扯远一点:从某个购物网站抓数据时,也遇到过这样的,网站上显示11.9%,然后我怎么ctrl+f搜11.9都搜不到,最后也是同事搜到的,我去,原来抓到的页面里是0.119。

剩下3位发现是随机的,那就好弄啦。这个参数这个坑就填上了。这里说一下,抓包工具一定要从首页开始抓,不从首页抓抓不到engine.js这个请求的,导致分析很容易掉坑。

最后一个坑,对于基础好的大神,其实也不算是坑了。我主要用httpclient不会提交这样的参数,问了一下同事,直接贴一下代码好了(提交参数,需要加换行符“\r\n”):

public static String textpost(HttpClient client,String url,Map<String,String> headers,String jsonParams,String reqCharset) {
		if (StringUtils.isBlank(url) || client == null) {
			throw new IllegalArgumentException("url and client can not be null.");
		}
		if (StringUtils.isBlank(reqCharset)) {
			reqCharset = "utf-8";
		}
		try {
			RequestBuilder requestBuilder = RequestBuilder.post().setUri(url);
			if (StringUtils.isNotBlank(jsonParams)) {
				StringEntity entity = new StringEntity(jsonParams);
				entity.setContentEncoding(reqCharset);
				entity.setContentType("text/plain");
				requestBuilder.setEntity(entity);
			}
			HttpUriRequest request = requestBuilder.build();
			if (MapUtils.isNotEmpty(headers)) {
				for (Map.Entry<String,String> entry : headers.entrySet()) {
					request.addHeader(entry.getKey(),entry.getValue());
				}
			}
			HttpResponse response = client.execute(request);
			try {
				String html = EntityUtils.toString(response.getEntity(),"utf-8");
				return html;
			} catch (IOException e) {
				logger.error("",e);
			}
		} catch (ParseException e) {
			logger.error("",e);
		} catch (IOException e) {
			logger.error("",e);
		}
		return null;
	}
最后说一下,学到的好技巧,这样提交有时会提交错误,可是又不好找原因。可以用抓包工具抓程序的包,然后用对比工具进行对比,就很容易找到错误啦! 原文链接:https://www.f2er.com/ajax/161690.html

猜你在找的Ajax相关文章