Nodejs请求“代理”选项不是通过定义的主机路由请求
Posted
技术标签:
【中文标题】Nodejs请求“代理”选项不是通过定义的主机路由请求【英文标题】:Nodejs request 'proxy' option is not routing request through defined host 【发布时间】:2014-02-17 15:01:50 【问题描述】:我无法查看 Node js 应用程序和 API 之间交换的信息。
开发人员正在使用request 模块。查看自述文件有一个名为“代理”的选项:
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】:使用“网址”而不是“主机”。我从内联注释中假设,它是 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: 乌里|| url - 完全限定的 uri 或来自
的解析 url 对象【讨论】:
以上是关于Nodejs请求“代理”选项不是通过定义的主机路由请求的主要内容,如果未能解决你的问题,请参考以下文章
nodejs通过代理(proxy)发送http请求(request)
nodejs通过代理(proxy)发送http请求(request)