RESTful API测试,cookie不会传递给下一个请求

时间:2014-07-13 11:49:11

标签: node.js http http-headers request

当我在测试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都要传递给下一个请求,就像在浏览器中一样。

我该怎么办?你可以编辑我的代码吗?谢谢!

0 个答案:

没有答案