中文| English| View on Github

$${summary}

   

${featureA}

${featureADesc}

${featureB}

${featureBDesc}
${featureBHowTo} >>

${featureC}

${featureCDesc}

${featureD}

${featureDDesc}

${installationTitle}

  • ${installationStepA} Node.js >= v0.12
  • npm install -g anyproxy, ${installationStepB}sudo
  • More>>

${quickStartTitle}

${sampleRuleTitle}

${sampleATitle}

//append "hello world" to all web pages
//file : rule_replace_response_data.js
//run  : anyproxy --rule rule_replace_response_data.js
module.exports = {
    replaceServerResDataAsync: function(req,res,serverRes,cb){

        if(/html/i.test(res.headers['content-type'])){
            var newDataStr = serverRes.toString();
            newDataStr += "hello world!";
            cb(newDataStr);
        }
    }
};

                    

${sampleBTitle}

//remove cache related header
//file : rule_remove_cache_header.js
//run  : anyproxy --rule rule_remove_cache_header.js
module.exports = {
    replaceRequestOption : function(req,option){
        var newOption = option;
        delete newOption.headers['if-modified-since'];

        return newOption;
    }
};

                    

${sampleCTitle}

//assign a specific IP adress for some request
//file : rule_reverse_proxy.js
//run  : anyproxy --rule anyproxy --rule rule_reverse_proxy.js
module.exports = {
    replaceRequestOption : function(req,option){
        var newOption = option;
        if(newOption.headers.host == "www.taobao.com"){
            newOption.hostname = "192.168.1.3";
            newOption.port     = "80";
        }

        return newOption;
    }
};

                    

${sampleDTitle}

//replace all the images with local one
//file : rule_use_local_data.js
//run  : anyproxy --rule anyproxy --rule rule_use_local_data.js
var fs  = require("fs"),
    img = fs.readFileSync("sample.jpg");

module.exports = {
    shouldUseLocalResponse : function(req,reqBody){
        if(/\.(png|gif|jpg|jpeg)$/.test(req.url)){
            req.replaceLocalFile = true;
            return true;
        }else{
            return false;
        }
    },

    dealLocalResponse : function(req,reqBody,callback){
        if(req.replaceLocalFile){
            callback(200, {"content-type":"image/png"},img );
        }
    }
};

                    

${otherFeaturesTitle}

{@if language == "cn"}

相关阅读

{@/if}