2017-05-15 1 views
0

En utilisant Casperjs je télécharge apk à partir du serveur distant, mais en obtenant une apk vide (0 octets).casperjs réponse en-têtes contenu-longueur 0

try { 
     this.echo("Attempting to download file "); 
     var fs = require('fs'); 
     var appUrl = 'http://website.com/download/someapp.apk'; 
     casper.download(appUrl, fs.workingDirectory+'/'+'newApk.apk'); 
    } catch (e) { 
     this.echo(e); 
    } 

Et je reçois ceci dans les en-têtes de réponse.

Server: nginx/1.10.2 
Date: Mon, 15 May 2017 06:49:10 GMT 
Content-Length: 0 
Connection: keep-alive 
X-Robots-Tag: noindex 
Location:http://website.com/download/someapp.apk 
Expires: Thu, 01 Jan 1970 00:00:01 GMT 
Cache-Control: no-cache, max-age=0, no-cache, no-store, must- 
revalidate, proxy-revalidate, no-transform 
Pragma: no-cache 

Répondre

0

Si l'URL est correcte et que votre code est valide, cela devrait fonctionner. Pour vous aider, voici un exemple de script de travail minimal qui télécharge une image dans le répertoire courant:

var casper = require('casper').create(); 

casper.start('https://duckduckgo.com', function() { 
    var url = 'https://duckduckgo.com/assets/logo_homepage.normal.v107.svg'; 
    this.download(url, 'duckduckgo-logo.svg'); 
}); 

casper.run(function() { 
    this.echo('Done.').exit(); 
}); 

Si cela ne fonctionne toujours pas, il est peut-être un problème avec la sécurité . Dans ce cas, essayez d'exécuter votre script avec casperjs --web-security=no download.js ou configurer votre instance de Casper comme ceci:

var casper = require('casper').create({ 
    pageSettings: { 
    webSecurityEnabled: false 
    } 
}); 

OU

casper.page.settings.webSecurityEnabled = false;