2012-09-06 13 views

Respuesta

13

El uso de la maravillosa biblioteca request está habilitada por defecto. Puede enviar su propia como tal (tomado de la página de Github):

var j = request.jar() 
var cookie = request.cookie('your_cookie_here') 
j.add(cookie) 
request({url: 'http://www.google.com', jar: j}, function() { 
    request('http://images.google.com') 
}) 
+1

Pero, ¿cómo se ve el código con solo los módulos predeterminados? – jiyinyiyong

+0

Ah: no estoy seguro. Nunca he intentado usar el cliente HTTP predeterminado para mis solicitudes. – Femi

+0

Acabo de empezar a aprender más sobre HTTP. Creo que si el módulo 'http' predeterminado tiene el método para hacerlo, puedo obtener más información al respecto. – jiyinyiyong

4

Si quiere hacerlo con el método nativo http:request(), es necesario establecer las adecuadas Set-Cookie cabeceras (consulte una referencia HTTP para lo que debería verse) en el headers miembro del argumento options; no hay métodos específicos en el código nativo para tratar con las cookies. Consulte el código fuente en la biblioteca request de Mikeal o el código cookieParser en connect si necesita ejemplos concretos.

Pero Femi está casi seguro en lo cierto: lidiar con las cookies está lleno de detalles algo quisquillosos y casi siempre va a ser mejor usar código que ya se ha escrito y, lo que es más importante, probado. Si intentas reinventar esta rueda en particular, es probable que encuentres un código que parece funcionar la mayor parte del tiempo, pero ocasionalmente e imprevisiblemente falla misteriosamente.

0
var jar = request.jar(); 
const jwtSecret = fs.readFileSync(`${__dirname}/.ssh/id_rsa`, 'utf8'); 
const token = jwt.sign(jwtPayload, jwtSecret, settings); 
jar.setCookie(`any-name=${token}`, 'http://localhost:12345/'); 
const options = { 
    method: 'GET', 
    url: 'http://localhost:12345', 
    jar, 
    json: true 
}; 
request(options, handleResponse); 
+0

Agregue más descripción y/o información sobre su respuesta y cómo resuelve el problema solicitado para que otros puedan entenderlo fácilmente sin pedir aclaraciones – koceeng

Cuestiones relacionadas