首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在node.js http.Client中使用http代理?

如何在node.js http.Client中使用http代理?
EN

Stack Overflow用户
提问于 2010-10-05 18:32:54
回答 11查看 242.4K关注 0票数 152

我想使用标准的http.Client从node.js发出一个传出的HTTP调用。但是我不能直接从我的网络连接到远程服务器,需要通过代理。

如何告诉node.js使用代理?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-07-22 03:26:36

关于使用HTTP proxy,Tim Macfarlaneanswer已经很接近了。

使用HTTP代理(用于非安全请求)非常简单。您连接到代理并正常发出请求,但路径部分包含完整的url,且主机标头设置为您要连接到的主机。

Tim的答案非常接近,但他没有正确设置主机头。

代码语言:javascript
复制
var http = require("http");

var options = {
  host: "proxy",
  port: 8080,
  path: "http://www.google.com",
  headers: {
    Host: "www.google.com"
  }
};
http.get(options, function(res) {
  console.log(res);
  res.pipe(process.stdout);
});

根据记录,他的答案确实适用于http://nodejs.org/,但这是因为他们的服务器并不关心主机报头是否正确。

票数 162
EN

Stack Overflow用户

发布于 2011-06-16 10:53:38

我花了一段时间才弄明白的一件事是,使用'http‘来访问代理,即使你试图通过代理连接到https服务器。这对我使用Charles (osx协议分析器)很有效:

代码语言:javascript
复制
var http = require('http');

http.get ({
    host: '127.0.0.1',
    port: 8888,
    path: 'https://www.google.com/accounts/OAuthGetRequestToken'
}, function (response) {
    console.log (response);
});
票数 37
EN

Stack Overflow用户

发布于 2014-08-04 23:58:14

我想我应该添加我发现的这个模块:https://www.npmjs.org/package/global-tunnel,它对我来说工作得很好(只需下面的代码就可以立即与我的所有代码和第三方模块一起工作)。

代码语言:javascript
复制
require('global-tunnel').initialize({
  host: '10.0.0.10',
  port: 8080
});

这样做一次,应用程序中的所有http (和https)都会通过代理。

或者,调用

代码语言:javascript
复制
require('global-tunnel').initialize();

将使用http_proxy环境变量

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3862813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档