当我在测试RESTful API时向localhost发出http请求时,我需要将所有cookie带到下一个请求中。 nodejs默认的http模块不支持cookie,但我通过设置' jar:true'来听到request支持cookie。在选项中。
默认情况下禁用Cookie(否则,它们将被用于 后续要求)。要启用cookie,请将jar设置为true(在 默认值或选项)并安装tough-cookie。
首先,他们的意思是“安装坚韧的cookie&#39 ;?我试着安装hard-cookie --save'到我的项目然后
tough = require('tough-cookie')
在测试代码中但它不起作用。我是否必须为某些设置选项分配难度?这是我向localhost发出http请求的代码:
var get = function(path, paramObj, cb) {
return Promise(function(resolve, reject) {
var options = {
url: 'http://' + hostname + ':' + port + path,
method: 'GET',
qs: paramObj,
headers: {
'Content-Type': 'application/json',
'User-Agent': 'request',
'Cache-Control': 'no-cache'
},
jar: true // even I set true, cookie doesn't carry along to next request
};
request(options, function(err, response, body) {
if (!err && response.statusCode === 200) {
try {
var parsed = JSON.parse(body);
cb(parsed);
} catch (e) {
console.log('get() - Parsing JSON error');
cb(body);
}
}
});
});
};
var post = function(path, paramObj, cb) {
var options = {
url: 'http://' + hostname + ':' + port + path,
method: 'POST',
body: JSON.stringify(paramObj),
headers: {
'Content-Type': 'application/json',
'User-Agent': 'request',
'Cache-Control': 'no-cache'
},
jar: true // doesn't work
};
request(options, function(err, response, body) {
if (!err && response.statusCode == 200) {
// console.log('response is:');
console.log(response.headers);
try {
var parsed = JSON.parse(body);
console.log('parse json good');
cb(parsed);
} catch (e) {
console.log('post() - Parsing JSON error');
cb(body);
}
}
});
};
再次,我的目的是
所有Cookie都要传递给下一个请求,就像在浏览器中一样。
我该怎么办?你可以编辑我的代码吗?谢谢!