我可以发送一个GET请求与Cookie中的标头中的节点?

在浏览器中,如果我发送一个GET请求,请求将同时发送cookie。 现在我想模拟来自Node的GET请求,然后如何编写代码?

使用奇妙的请求库cookie是默认启用的。 你可以发送你自己的(从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') }) 

如果你想用本地的http:request()方法来完成这个工作,你需要在options参数的headers成员中设置合适的Set-Cookie头文件(请参见HTTP引用)。 本机代码中没有处理cookie的具体方法。 如果你需要具体的例子,请参考Mikeal的request库中的源代码和connect中的cookieParser代码。

但费米几乎肯定是正确的:处理cookies是充满了相当棘手的细节,你几乎总是会使用已经写好的代码,更重要的是testing更好。 如果你试图重新发明这个特定的轮子,你很可能会想出大部分时间都可以运行的代码,但是偶尔和不可预测的代码会神秘地失败。

 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);