J'essaie d'utiliser le module demande dans mon application node.js, et je dois configurer les paramètres de proxy avec l'authentification.
Mes paramètres ressemblent à ceci:
proxy:{
Host:"proxy.foo.com",
port:8080,
user:"proxyuser",
password:"123"
}
Comment puis-je définir ma configuration de proxy lorsque je fais une demande? Quelqu'un pourrait-il me donner un exemple? Merci
Voici un exemple de configuration ( https://github.com/mikeal/request/issues/894 ):
//...some stuff to get my proxy config (credentials, Host and port)
var proxyUrl = "http://" + user + ":" + password + "@" + Host + ":" + port;
var proxiedRequest = request.defaults({'proxy': proxyUrl});
proxiedRequest.get("http://foo.bar", function (err, resp, body) {
...
})
La réponse acceptée n'est pas fausse, mais je voulais transmettre une alternative qui répondait un peu à un besoin différent que j'ai trouvé.
Mon projet en particulier a un éventail de proxys parmi lesquels choisir, pas un seul. Donc, chaque fois que je fais une demande, cela n'a pas beaucoup de sens de réinitialiser l'objet request.defaults. Au lieu de cela, vous pouvez simplement le transmettre directement aux options de demande.
var reqOpts = {
url: reqUrl,
method: "GET",
headers: {"Cache-Control" : "no-cache"},
proxy: reqProxy.getProxy()};
reqProxy.getProxy()
renvoie une chaîne à l'équivalent de [protocol]://[username]:[pass]@[address]:[port]
Faites ensuite la demande
request(reqOpts, function(err, response, body){
//handle your business here
});
J'espère que cela aide quelqu'un qui vient avec le même problème. À votre santé.
le paramètre proxy prend une chaîne avec l'url de votre serveur proxy, dans mon cas le serveur proxy était à http://127.0.0.1:8888
request({
url: 'http://someurl/api',
method: 'POST',
proxy: 'http://127.0.0.1:8888',
headers: {
'Content-Length': '2170',
'Cache-Control': 'max-age=0'
},
body: body
}, function(error, response, body){
if(error) {
console.log(error);
} else {
console.log(response.statusCode, body);
}
res.json({
data: { body: body }
})
});