在 HTTP 请求中指定端口号 (node.js)

2024-03-09

使用请求模块发出 HTTP 请求时是否可以指定端口号?我在文档中没有看到任何有关此内容的信息:

var request = require('request');

// this works
request({
  method: 'GET',
  url: 'http://example.com'
}, function(error, response, body) {
  if (error) console.log(error);
  console.log(body);
});

// this does not work
request({
  method: 'GET',
  url: 'http://example.com:10080'
}, function(error, response, body) {
  // ...
});

此外,当我运行第二个版本时,我的程序中绝对没有任何反应(几乎就像从未发出请求一样)。

我还知道我可以在使用核心发出请求时指定端口号http模块。为什么请求模块中没有这个选项?

编辑:我应该之前提到过这一点,但我正在 Heroku 上运行这个应用程序。

当我在本地运行请求(使用请求模块)时,我可以指定端口号,并获得成功的回调。

当我从 Heroku 运行请求时,没有触发任何回调,并且 nginx 没有显示该请求的记录。

我疯了吗? Heroku 是否有某种原因阻止我向特定端口号发出出站 HTTP 请求?


Using request将完整的 URL 作为第一个参数对我有用:

var http = require('http');
var request = require('request');

// start a test server on some non-standard port
var server = http.createServer(function (req, res) {
  res.end('Hello world');
});
server.listen(1234);

// make the GET request
request('http://127.0.0.1:1234', function (err, res) {
  if (err) return console.error(err.message);

  console.log(res.body);
  // Hello world

  server.close();
});

指定methodurl单独也可以工作:

request({
  method: 'GET',
  url: 'http://127.0.0.1:1234'
}, function (err, res) {
  if (err) return console.error(err.message);

  console.log(res.body);
  // Hello world

  server.close();
});

您可能需要检查您的服务器是否正在运行,以及您是否位于阻止访问该端口的代理或防火墙后面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 HTTP 请求中指定端口号 (node.js) 的相关文章

随机推荐

  • 如何使用 HTTPS 代理启动 VSCode chrome 调试器

    我之前曾在没有 SSL 代理的情况下从 VSCode 启动过 chrome 所以我猜这就是我问题的根源 这是我的 VSCode launch json 配置 name Launch Chrome request launch type pw
  • protege 中的自反属性

    This https ufile io rcv9m是我用 protege 5 创建的本体 如果我做cl1 and cl2不相交 那么本体是不一致的 但是如果我取消选中is friend of反身性的 本体论不再不一致 我的本体有什么问题吗
  • IIS7 应用程序请求路由 HTTPS

    我有一个反向代理 可将流量路由到我的应用程序服务器 我的公共网站有登录功能 通过 HTTPS 提供服务 SSL 证书仅安装在反向代理服务器中 我的应用服务器没有 SSL 证书 反向代理服务器中启用了 SSL 卸载 到目前为止效果很好 我可以
  • 如果 Task Runner Explorer 任务失败则取消构建

    我正在使用 Visual Studio 任务运行程序 2015 来运行绑定到构建之前的 Gulp 任务 我已经将其设置为当 gulp 任务失败时 它会发送退出代码 1 并在最后显示 进程以代码 1 终止 然而构建仍在继续 这将取消团队城市中
  • 如何在 Perforce 2013 之前将搁置的变更列表取消搁置到另一个分支?

    Using Perforce 服务器 2012 2 538478 如何将文件从主干取消搁置到另一个分支 当尝试这样做时 我得到 filename not mapped to your workspace view 在 Perforce 20
  • jdt.core Java 模型的 JUnit 测试

    我正在尝试为我的代码进行一些 JUnit 测试 但问题是 我使用了 ICompilationUnit IPackageFragment ITypes 等 Java 模型 我不知道如何创建一些 ICompilationUnit 然后进行测试
  • 如何在由空格分隔的字符串的中点添加换行符

    使用 php 如何在字符串相对中间的空白处插入换行符 或者换句话说 如何计算句子中的单词数 然后在句子的中间点换行 这个想法是为了避免博客文章标题第二行出现寡妇 废弃的单词 方法是将每个标题切成两半 如果标题占用一行以上 则将其放在两行上
  • C# 中反射的 SetValue

    考虑这段代码 var future new Future future GetType GetProperty info Name SetValue future converted 在上面的代码中 我们应该传递两个参数SetValue 首
  • SceneKit - 如何获取 .dae 模型的动画?

    好吧 我在这里使用 ARKit 和 SceneKit 我在查看其他涉及 SceneKit 试图在其中建立模型的问题时遇到了麻烦 dae格式化并加载各种动画以使该模型运行 现在我们在 iOS11 中似乎某些解决方案不起作用 这是我从基地获取模
  • Haskell 中是否执行单子法则?

    来自 Haskell 维基 Monad 可以被视为各种标准编程接口 数据或控制结构 由 Monad 类捕获 全部 常见的单子是它的成员 class Monad m where gt gt m a gt a gt m b gt m b gt
  • 如何处理Matlab parfor循环中的未分类变量?

    我有以下代码 我想使其并行 但不幸的是 当我使用 parfor 循环时 出现以下错误 这是代码 parfor l1 1 length lambda1 list over l1 for l2 1 length lambda2 list par
  • Chrome SVG 网络字体在选择输入中出现奇怪的字符

    Windows 8 上的 Chrome 26 0 1410 64m 在渲染 WebFonts 时出现问题 这是一个已知问题 解决方案是首先提供字体的 svg 版本而不是 woff 版本 它修复了抗锯齿并使字体看起来再次漂亮 此方法的缺点是选
  • Safari iOS 12.2 和 12.3 中的错误

    所以我刚才在做个人项目时注意到了一些奇怪的事情 以下代码将导致位置问题div如果手机在方向之间来回切换 则元素处于纵向模式 而不是div如果固定或与屏幕底部齐平 div 将漂浮在屏幕上方并且根本不接触屏幕底部 html width 100
  • Java 中的泛型和反射

    这可能是一个非常基本的问题 但我对 Java 中的泛型确实很陌生 而且我很难改变我的思维过程与 C 中的完成方式 所以请耐心等待 我正在尝试用 Java 构建一个通用存储库 我创建了一个 IRepository 界面 如下所示 public
  • 在asp.net中使用表单身份验证时,是否可以使用iis 7来管理用户

    我有一个使用表单身份验证的 ASP NET Web 应用程序 一切都已配置并正常工作 但是 我正在处理创建和维护用户和角色成员资格的问题 我知道我可以推出自己的解决方案 但我想知道是否有替代解决方案 iis7 是否提供用于管理表单身份验证用
  • 如何使用 WinAPI 锁定内存中的页面?

    我需要防止应用程序的内存页面在 Windows 上从 RAM 中换出 是否有与 POSIX 等效的 WinAPI 函数mlockall http opengroup org onlinepubs 007908799 xsh mlockall
  • Erlang中socket的“packet”选项怎么能如此加速tcp传输呢?

    使用 packet 4 通过本地主机上的两个不同端口传输1G数据只需要8秒 而使用 packet raw 则无法在30秒内完成相同的任务 我知道如果使用后一种方法 数据将以数万个小块的形式到达 在archlinux上大小为1460字节 我已
  • 检查文件是否包含字符串

    所以我在这里找到了这个问题 但我对输出以及如何使用 if 语句处理它有疑问 这就是我所拥有的 但它总是说这是真的 即使文件中不存在监视器这个词 if File readlines testfile txt grep monitor do s
  • 为什么Java不支持在finally抛出异常时从try/catch中检索丢失的异常?

    在 Java 7 中 该功能被添加到 通过getSuppressed 获取从 try with resources 语句的隐式 finally 块抛出的异常 似乎仍然没有一种方法 据我所知 可以做相反的事情 当有一个显式的finally块并
  • 在 HTTP 请求中指定端口号 (node.js)

    使用请求模块发出 HTTP 请求时是否可以指定端口号 我在文档中没有看到任何有关此内容的信息 var request require request this works request method GET url http exampl