Google App Engine(Java):URL获取响应过大的问题
我正在尝试在谷歌应用程序上构建某种web服务。
现在问题是,我需要从网站获取数据(HTML Scraping)。
请求如下:
URL url = new URL(p_url); con = (HttpURLConnection) url.openConnection(); InputStreamReader in = new InputStreamReader(con.getInputStream()); BufferedReader reader = new BufferedReader(in); String result = ""; String line = ""; while((line = reader.readLine()) != null) { System.out.println(line); } return result;
现在,App Engine在第3行给出了以下例外情况:
com.google.appengine.api.urlfetch.ResponseTooLargeException
这是因为最大请求限制为1mb,页面的总HTML大约为1.5mb。
现在我的问题是:我只需要html的前20行来刮。 有没有办法只获取HTML的一部分,以便不会抛出ResponseTooLargeException?
提前致谢!
通过使用低级URLFetch api解决了这个问题。
并将allowtruncate选项设置为true;
基本上它的工作原理如下:
HTTPRequest request = new HTTPRequest(_url, HTTPMethod.POST, Builder.allowTruncate()); URLFetchService service = URLFetchServiceFactory.getURLFetchService(); HTTPResponse response = service.fetch(request);
- 在多个客户域上运行Google App Engine应用程序
- ImagesService.getServingUrl的URL持续多长时间
- 在GAE / J上创建文件并上传到Google文档
- AppEnginePlugin:不支持的major.minor版本51.0 – appengine 1.9.17
- 在Google App Engine JAVA中创建多个实例
- gwt-dev.jar太大了,无法上传到appengine。 我可以拆分一个jar文件,或者……什么?
- 在GAE上使用apache fileupload
- 用户不活动2分钟获取信息“此请求导致为您的应用程序启动新进程”
- 可以将Google模块与Google Plugin for Eclipse一起使用吗?