如何使用 Node.JS 进行请求 HTTP 摘要身份验证?

2024-01-25

我必须使用 Node.JS 为 API 文档编写一些代码,但我在过去几天尝试了在网络上找到的所有解决方案(当然包括 Stack),但没有成功......

我的 API 使用 HTTP Digest Auth,这就是问题所在,我能够连接,这不是什么大问题,但每次我得到相同的返回:

Got response : 401
HTTP Digest Authentication required for "api.example.com"

您可以在下面显示我的基本代码,无需授权!因为我不知道在我做了所有尝试之后我能做什么:

var http = require('http')

var options = {
    host: 'api.example.com',
    path: '/example/1.xml',
};

var request = http.get(options, function(res){
    var body = "";
    res.on('data', function(data){
        body += data;
    })
    res.on('end', function(){
        console.log('Got response : ' + res.statusCode);
        console.log(body);
    })
    res.on('error', function(e){
        console.log('Got error : ' +e.message);
    });
});

我最后的尝试之一是使用这个模块https://npmjs.org/package/request https://npmjs.org/package/request但他也不工作,因为每次我都得到 401 !

有关更多信息,我能够使用 Ruby、Python、php 和 Java 连接并从我的 API 获取我需要的信息,因此我确信我的 API 运行良好并且我传递的信息是正确的。 我使用 Node v0.10.11 的最后一个稳定版!

如果有人可以帮助我或有最新的解决方案,我会很高兴。

编辑 : 我将添加有关模块测试的一些详细信息迈克尔/请求 https://npmjs.org/package/request

第一次尝试 :

var request = require('request')

var options = {
    'url': 'http://api.example.fr/example/1.xml',
    'auth': {
        'user': 'test',
        'pass': 'test',
        'sendImmediately': false
    }
};

var request = request.get(options, function(error, response, body){
    if (!error && response.statusCode == 200){
        console.log('body : ' + body)
    }
    else{
        console.log('Code : ' + response.statusCode)
        console.log('error : ' + error)
        console.log('body : ' + body)
    }
});

第二次尝试:

var request = require('request')

request.get('http://api.example.fr/example/1.xml', function(error, response, body){
    if (!error && response.statusCode == 200){
        console.log('body : ' + body)
    }
    else{
        console.log('Code : ' + response.statusCode)
        console.log('error : ' + error)
        console.log('body : ' + body)
    }
}).auth('test', 'test', false);

但返回还是一样的401


这是您更正后使用的示例request根据它的 API。

var options = {
  uri: 'http://api.example.fr/example/1.xml',
  auth: {
    user: 'test',
    pass: 'test',
    sendImmediately: false
  }
};
request(options, function(error, response, body){
    if (!error && response.statusCode == 200){
        console.log('body : ' + body)
    }
    else{
        console.log('Code : ' + response.statusCode)
        console.log('error : ' + error)
        console.log('body : ' + body)
    }
});

请求可链接样式 API 有点令人困惑(恕我直言),但我相信你也可以让它以这种方式工作。

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

如何使用 Node.JS 进行请求 HTTP 摘要身份验证? 的相关文章

  • 使用 Node.JS,如何将 JSON 文件读入(服务器)内存?

    背景 我正在使用 Node js 进行一些实验 并且希望从文本文件或 js 文件 哪个更好 读取 JSON 对象到内存中 以便我可以从代码快速访问该对象 我意识到有像 Mongo Alfred 等这样的东西 但这不是我现在需要的 Quest
  • isModified 并预保存 mongoose...Nodejs

    您好 我只想在密码更改时使用散列密码保存 因此我在预保存中使用了 isModified 函数 但即使我更改了密码 它也总是返回 false 我尝试这样做的原因是因为我不想在更改其他属性时更改并保存我的密码 router post chang
  • Grunt-browserify+mapify+coffeescript = 未通过相对路径找到模块

    我尝试让 grunt browserify 使用 Coffeescript 的相对路径 但当我尝试构建源代码时总是收到错误消息 gt gt Error module src app utils includeMixin not found
  • Amazon Lex 和 BotFramework 集成 TypeError:无法对已在响应中撤销的代理执行“get”[重复]

    这个问题在这里已经有答案了 我正在进行概念验证 尝试将 BotFramework 与 Amazon lex 集成 并最终将机器人集成到 Microsoft 团队渠道 AWS SDK 用于调用 Amazon Lex 自动程序 async ca
  • 使用 NVM 安装多个版本的 node.js (Ubuntu)

    如何使用 Ubuntu 在 Ubuntu 中安装多个版本的 Node jsNVM https github com creationix nvm 先验知识 如何使用终端 例如 您可以使用gnome terminal 安装依赖项 sudo a
  • 如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

    给定一个Http IncomingMessage由一个创建http s Server为了响应请求 检测请求是否是 http 与 https 的正确 推荐方法是什么 一些我不知道的随机想法是否正确 检查端口 seems wrong might
  • 永远运行 Gulp 脚本?

    是否可以运行 Gulp 脚本forever https www npmjs com package forever 我有 Gulp 脚本想要作为守护进程运行 所以我可以启动 停止 列出它 好的 所以我通过将 gulp 二进制文件从 usr
  • npm install 不起作用,抛出错误

    我正在尝试在 nodejs 中安装 yo 和其他一些软件包 但是我不断收到错误 我是节点新手 所以我有点迷失 我运行的是 Mac OS X 10 10 3 我正在使用的命令是 sudo npm install global yo 这样做会给
  • 使用 mosca MQTT 的请求响应模式

    有没有办法使用 mosca MQTT 实现请求响应模式 以 检查客户端的回复 如果在预期时间内未收到预期回复 则重新发布 我相信这在 Mqtt 5 中是可能的 但截至目前 我必须使用 QoS 1 的 Mosca 代理 支持直到 Mqtt 3
  • 有什么不同? .on“连接”与.on“连接”

    我很难理解以下之间的区别 io on connection function io on connect function 可能是一个相当原始的问题 但是我无法找到有关它的明确文档 很想了解其中的区别 这些是同一事物的不同名称 正如所写so
  • 在社交媒体上分享 Reactjs 链接时,react-helmet 中的元标记不显示

    我有一个在客户端运行reactjs的项目 在后端运行nodejs express 我实现了react helmet来更新索引之外的路线的标题和元标记 例如 用户查看帖子 viewpost q POSTID 然后客户做了一个GET reque
  • 错误:找不到模块“jasmine-core”

    我安装了以下内容进行测试 devDependencies jasmine core 2 4 1 karma 0 13 22 karma jasmine 0 3 7 karma phantomjs launcher 1 0 0 运行后karm
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 以异步方式执行 Express res.render

    我有一个 Nodejs 应用程序 其中res renderExpress 方法以阻塞方式花费大约 400 毫秒 我如何处理它以非阻塞方式执行 我的 apache 基准测试需要 12 秒来执行大约 30 个并发请求 我如何以更好的方式实施这一
  • 使用 ObjectId 键和字符串数组定义映射作为 mongoose 模式中的值

    我在为数据库创建 Mongoose 架构时遇到问题 我想创建一个以 objectId 作为键 以字符串值数组作为值的映射 我能得到的最接近的是 var schema new Schema map myId type mongoose Sch
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • NodeJs 环境变量与配置文件

    实际上 我有一个 NodeJS Express 应用程序 其配置文件包含主机 端口 JWT 令牌 数据库参数等参数 问题是 将这些参数直接保留在环境变量上 没有任何配置文件 并访问它们 而不需要在所有组件和模块中进行 require 配置是
  • 动态更改温斯顿的日志级别

    我尝试在运行时实现日志级别更改 我一直在关注https github com yannvr Winston dynamic loglevel blob master test https github com yannvr Winston
  • 电子应用程序可以播放本地支持的任何视频吗?

    我知道浏览器通常会限制玩家mp4 and webm类型的媒体 但我想知道基于电子的应用程序是否可以运行 MKV 和 AVI 等格式的本地视频 我找不到明确的来源来告诉我什么是可用的 什么是不可用的 Electron 仍然仅限于网络技术 这意

随机推荐

  • 切换选项卡时片段有时会重叠[重复]

    这个问题在这里已经有答案了 我有一个两窗格布局 按钮位于左侧 当按下按钮时 其相应的片段会显示在右侧 有时片段会重叠 但这是一个间歇性问题 我无法一直复制它 但它确实发生了 public void onClick View v switch
  • 如何检索维基数据中的分类详细信息

    我有一个实例列表如下 myinstances word2vec tf idf dijkstra s algorithm 对于每个myinstance在上面的列表中 我想找到 1 What are the other instances of
  • Python 中散列图像的性能缓慢

    我有一个创建图像差异哈希并存储在 Python 列表中的函数 import glob import dhash from alive progress import alive bar from wand image import Imag
  • 成功登录后添加声明

    用户成功登录后 我需要添加对用户身份的声明 我认为这就是需要发生的地方 public async Task
  • 将 XML 文件添加到文件列表

    我想将 XML 文件的内容添加到 doxygen 生成的文档中 我将 XML 文件添加到INPUTdoxygen 配置文件的标记 但是 虽然 XML 文件列在文件列表中 但并未显示文件的内容 我需要做什么才能包含这些内容 Doxygen 没
  • 使用 JGit 提交之间更改的文件列表

    我想在两次提交之间更改 添加 修改或删除 文件的路径 从命令行 我只需写 git diff name only abc123 def456 使用 JGit 执行此操作的等效方法是什么 您可以使用DiffFormatter得到一个列表Diff
  • 使用 AWS Cloudwatch Agent 和 Python 记录自定义指标

    我们使用 Python 将自定义指标发送到 AWS 请参阅下面的现有代码 并单独使用AWS CloudWatch 代理 https docs aws amazon com AmazonCloudWatch latest monitoring
  • 时间复杂度:删除双端队列的元素

    删除一个元素的时间复杂度是多少collections deque E g deq collections deque 1 2 3 del deq 1 Summary 时间复杂度为 O n 其中 n 是到最近端点的距离 总尺寸为deque不要
  • 使用 Apache Commons Math 确定置信区间

    我有一组基准数据 我使用 Apache Math Commons 计算汇总统计数据 现在我想使用该包来计算算术平均值的置信区间 例如运行时间测量 这有可能吗 我确信该软件包支持这一点 但是我不知道从哪里开始 这是我在 Brent Worde
  • 在 ES6 中,函数的数组式解构有什么作用?

    我通读了redux actions教程 https redux actions js org introduction tutorial 并且对他们使用 我认为是 解构感到困惑 下面是一个例子 increment decrement都是由返
  • 查找不连续时间段 YYYYMM00 的最小和最大日期

    我有以下两个表 维度时间是一个包含每个月的表 按 ID 排序 采用 YYYMM00 形式 日志播放器是一个表格 其中有与球员和特定月份相关的一些统计数据 我想得到的是以下内容 Player Team Start End John Red 2
  • 确定与 perl 中的正则表达式匹配的部分

    我正在寻找正则表达式可能重叠的匹配的累积 最终目标是在结果子字符串中进行进一步搜索 我想跳过已经 累积 的匹配 同时避免使用substr 我可能是错误的避免substr 但是我为它写的条件是pos and a next if 不起作用 us
  • Docker ADD 与 VOLUME

    我正在学习 Docker 但我对何时何地使用 Docker 有疑问ADD and VOLUME 我认为这两者的作用如下 ADD 在构建时将文件复制到映像 该映像包含所有文件 因此您可以非常轻松地进行部署 另一方面 在开发中每次都需要构建看起
  • Firebase 的云功能 - 无法加载 URL:不存在“Access-Control-Allow-Origin”标头

    我有一个 Angular 2 应用程序 我通过 http 请求调用 Firebase 但是 每当我尝试运行该函数时 都会收到此错误 XMLHttpRequest cannot load https us central1
  • Hibernate 标准多选查询与连接

    下面是我的实体类 我使用条件生成器检索该实体 但我只需要获取id title and tags 问题 java Entity Table name QUESTION TITLE public class Question Id Column
  • beginAt、endAt 使用索引而不是优先级

    有没有办法将 beginAt 和 endAt 与索引而不是优先级一起使用 以便我可以用它进行客户端分页 我将 priority 分配给非空值进行排序 您可以使用 startAt endAt 的第二个参数来执行此操作 请注意 在对消息进行排序
  • 无法使用 robo3T 和 C# 从其他服务器连接到 MongoDB 副本集

    我已经安装了mongodb副本集 在文件中mongod conf已添加 BIND IP 如下 net port 27017 bindIp 127 0 0 1 100 0 192 68 当我使用robo3t连接 副本集 时键入错误 但是当连接
  • Oracle ODP.NET 连接字符串:数据源中有什么?

    这是 ODP NET 的 ConnectionStrings com 字符串 很棒 但是什么是数据源 数据源 TORCL 用户ID someUser 密码 son28dnn 是控制面板中的DSN吗 服务器名称 TNS 命名服务名称 Than
  • 如何从 OpenXML 中的名称或工作表 ID 获取 Worksheetpart?

    下面创建一个 XLSX 添加两个包含一些数据的工作表 然后 我希望能够稍后根据名称 或者最好是 ID 获取电子表格 以便我可以在稍后的时间点添加 修改工作表 我不知道如何再次获取下面代码不完整的工作表 Sub Main Using doc
  • 如何使用 Node.JS 进行请求 HTTP 摘要身份验证?

    我必须使用 Node JS 为 API 文档编写一些代码 但我在过去几天尝试了在网络上找到的所有解决方案 当然包括 Stack 但没有成功 我的 API 使用 HTTP Digest Auth 这就是问题所在 我能够连接 这不是什么大问题