NodeJS使用Request模块实现CURL

// CurlGet(URL,CALLBACK(ERROR,RESPONSE,DATA),COOKIES,HEADERS,TIMEOUT);
// CurlPost(URL,POSTDATA,CALLBACK(ERROR,RESPONSE,DATA),COOKIES,HEADERS,TIMEOUT);

function CurlGet(url,callback=false,cookies='',headers={},timeout=30000) {
    request = request.defaults({
        jar: true,
        rejectUnauthorized:false
    });
    var jar = request.jar();
    if(cookies){
            var arr = cookies.split(";");
            for (var i = 0; i < arr.length; i++) {
                jar.setCookie(arr[i], url);
            }
    }
    request({
        url: url,
        jar: jar,
        headers: headers,
        timeout:timeout,
        followRedirect:false//禁止自动重定向
    }, function(error, response, body) {
        if(callback){
            callback(error, response, body);
        }
    });
}

function CurlPost(url,data={},callback=false,cookies='',headers={},timeout=30000) {
    request = request.defaults({
        jar: true,
        rejectUnauthorized:false,
    });
    var jar = request.jar();
    if(cookies){
            var arr = cookies.split(";");
            for (var i = 0; i < arr.length; i++) {
                jar.setCookie(arr[i], url);
            }
    }
    request.post({
        url: url,
        jar: jar,
        headers: headers,
        timeout:timeout,
        followRedirect:false//禁止自动重定向
    }, function(error, response, body) {
        if(callback){
            callback(error, response, body);
        }
    }).form(data);
}