1

假设我想在这个对 google 的调用中添加一个查询参数,但是对它进行编码而不是从 http 调用中进行转发

我正在使用 nodejs hapi 框架

server.route({ 
    method: '*', 
    path: '/{p*}', 
    handler: { 
        proxy: { host: 'google.com', port: 80, redirects: 5 } 
    } 
});

可以在调用之前修改 url。

4

2 回答 2

3

我通过代理做了这个:mapUri

server.route({ 
    method: 'GET', 
    path: '/index/search/{p}', 
    handler: {
    proxy: {
            mapUri:  function (request, callback) {
        query = request.url.search ? request.url.search : '';
        p = request.params.p ? '.' + request.params.p +'.' : '' ;

        //loaded from a configuration file
        tls = Config..tls;
        host = Config..host; 
        port = Config.port;

        url = (tls ? 'https://' : 'http://') + host + port + p  + request.path + query;

        console.log('Method: ' + request.method.toUpperCase() + ' Url: ' + url);
        callback(null,url);
        }
    }
    }
});
于 2014-03-21T17:47:19.593 回答
0

工作的代码少一点

server.route({
  method: 'GET',
  path: '/{query}',
  handler: {
    proxy: {
      mapUri: function(request, callback){
        var url="https://www.google.com/search?q="+request.params.query;
        callback(null, url);
      }
    }
  }
});
于 2015-03-17T15:58:48.387 回答