2017-09-11 3 views
0

Tentative de téléchargement d'un fichier avec nœud Wget:401 fichiers Télécharger tentative avec nœud Wget

wget ({ 
     url: 'https://localhost...', 
     dest: './test_artifacts/logs/', 
     timeout: 2000 
     }, function (error, response, body) { 
     if (error) { 
      console.log('--- error:'); 
      console.log(error);   // error encountered 
     } else { 
      console.log('--- headers:'); 
      console.log(response.headers); // response headers 
      console.log('--- body:'); 
      console.log(body);    // content of package 
     } 
    } 
); 

Aussi, en utilisant PhantomJS, Sélénium WebDriver et le concombre. Le code ci-dessus fonctionne lorsqu'un fichier est accessible au public, mais quand je l'utilise sur mon site je reçois:

Status Code: 401; Unauthorized 

Le site utilise une page de connexion pour vérifier l'utilisateur. Je présume que c'est ce qui bloque mon téléchargement du fichier. Cependant, à ce stade des étapes du test, Selenium s'est déjà connecté et a navigué sur le site. Cela m'amène à croire que Wget nécessite que quelque chose lui soit passé pour déterminer que l'utilisateur est déjà connecté. Le problème est que la documentation pour node-wget est très petite et je n'ai vu aucune commande dans docs qui fournisse une solution.

Lien vers l'emballage utilisé: https://www.npmjs.com/package/node-wget

+0

Vous avez probablement besoin d'ajouter un en-tête d'autorisation, qui ressemble au paquetage node-wget. voir [Autorisation - HTTP] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) – sircapsalot

+0

Merci pour la réponse. Après avoir lu votre lien ci-dessus, je crois que je comprends le concept. J'ai du mal à l'implémenter en utilisant node-wget, cependant. Essayé quelques variations sur l'en-tête suivant: Autorisation: 'nom d'utilisateur: mot de passe', –

Répondre

0

commutables à NPM 'demande'. Fonctionne bien. Autorise les champs d'en-tête HTTP personnalisés tels que:

headers: { 
Authorization: 'Bearer esdfsdf...' 
} 
}; 
headers: { 
Authorization: 'Bearer esdfsdf...' 
} 
};