Nodejs请求'proxy'选项不是通过定义的主机路由请求

时间:2014-02-17 15:01:51

标签: node.js proxy request fiddler charles-proxy

我无法查看Node js应用程序和API之间交换的信息。

开发人员正在使用request模块。查看自述文件有一个名为'proxy'的选项:

proxy - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the url parameter (by embedding the auth info in the uri)

但是,当我添加代理作为选项时,它似乎被丢弃,因为当请求传递给服务器时,我在http代理中看不到任何信息(Charles或Fiddler)

我使用的选项是:

exports.defaultOptions = function(){
  return {
    host: config.apiHost, // API url to connect too
    headers: { 'Content-Type': 'application/json' },
    method: 'POST', // Default method
    port: config.apiPort, // API port number to connect too
    proxy: 'http://192.168.2.183:8888'
  };
};

我尝试了其他调试流量的方法(隧道代理,代理链),但这些方法似乎都导致了CONNECT方法,而不是GET或POST。

如果有任何使用代理选项的经验,或者如果我从根本上误解了代理选项的实现或使用,请告诉我。

由于

1 个答案:

答案 0 :(得分:1)

使用'url'代替'host'。我假设从内联注释中,它是api端点的完整URL。

exports.defaultOptions = function(){
  return {
    url: config.apiHost, // API url to connect too
    headers: { 'Content-Type': 'application/json' },
    method: 'POST', // Default method
    port: config.apiPort, // API port number to connect too
    proxy: 'http://192.168.2.183:8888'
  };
};

来自docs: uri || url - 来自

的完全限定的uri或解析的url对象