当我不是从Jersey Resource启动service.snapshot(msg);
时,它工作正常。但是对于下面的这段代码,它会生成空白的png / pdf文件。
@GET
@Path("/snapshot")
@Produces(MediaType.APPLICATION_JSON)
public RequestResponse snapshot( @QueryParam("url") String url, // snapshot(...)
@QueryParam("format") String format,
@QueryParam("quality") int quality) throws InterruptedException {
final PageSnapshotMsg msg = new PageSnapshotMsg.Builder().url(url).
format(format).
quality(quality).
build();
return service.snapshot(msg);
}
生成的PhatomJS js脚本是相同的:
我想知道会是什么?
更新:
我试图使我的PhantomJS脚本看起来像这样(增加了延迟2000),但是它没有帮助:
var page = require('webpage').create();
page.viewportSize = { width: 800, height: 600 };
page.open('bl.ocks.org/mbostock/4063550', function(status) {just_wait(); });
function just_wait() {
setTimeout(function() page.render('c:/snapshots_db/1406931931354_bl_ocks_org_mbostock_4063550.png', {format: 'png', quality: '10'});
phantom.exit();}, 2000);}
最佳答案
您open
的URL必须是正确的URL。它必须以http://
或https://
开头。否则什么也不会发生。
您应该检查status
参数以获取提示。
var page = require('webpage').create();
page.open('http://example.com/', function(status){
console.log(1, status); // success
page.open('example.com/', function(status){
console.log(2, status); // fail
phantom.exit();
});
});