instalar - autenticación proxy en node.js con solicitud de módulo
npm proxy (3)
Estoy intentando usar la request del módulo en mi aplicación node.js, y necesito configurar los ajustes del proxy con autenticación.
Mis configuraciones son algo como esto:
proxy:{
host:"proxy.foo.com",
port:8080,
user:"proxyuser",
password:"123"
}
¿Cómo puedo configurar mi configuración de proxy cuando hago una solicitud? ¿Podría alguien darme un ejemplo? Gracias
Aquí hay un ejemplo de cómo configurar ( 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 respuesta aceptada no es incorrecta, pero quería transmitir una alternativa que satisficiera un poco las necesidades diferentes que encontré.
Mi proyecto en particular tiene una variedad de proxies para elegir, no solo uno. Por lo tanto, cada vez que hago una solicitud, no tiene mucho sentido restablecer el objeto request.defaults. En su lugar, simplemente puede pasarlo directamente a las opciones de solicitud.
var reqOpts = {
url: reqUrl,
method: "GET",
headers: {"Cache-Control" : "no-cache"},
proxy: reqProxy.getProxy()};
reqProxy.getProxy()
devuelve una cadena al equivalente de [protocol]://[username]:[pass]@[address]:[port]
Entonces haz la solicitud
request(reqOpts, function(err, response, body){
//handle your business here
});
Espero que esto ayude a alguien que viene con el mismo problema. Aclamaciones.
el parámetro del proxy toma una cadena con la url de su servidor proxy, en mi caso el servidor proxy estaba en 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 }
})
});