gpt4 book ai didi

javascript - 未处理的拒绝错误 : StatusCodeError: 401 (Unauthorized: Access is denied due to invalid credentials)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:25:01 27 4
gpt4 key购买 nike

此页面在纯空 html/body 标记内显示 JSON。例如:

<html>
<body>
**JSON DATA ***
</body>
</html>

我可以在浏览器中正常访问该页面。但是,当我发送请求时,它说我的凭据无效(响应错误几乎在标题中)。这是代码

import dotenv = require('dotenv');
dotenv.config({ path: '../logins.env' });
import rp = require('request-promise');
const jsonUrl = `http://availability.emodal.com/ImportAvailability/GetContainerInfoList?sgrdModel=%7B%22searchtext%22:%22%22,%22page%22:1,%22pageSize%22:280,%22sortBy%22:%221%22,%22sortDirection%22:%22asc%22,%22sortColumns%22:%22%22%7D`;

const authOpts = {
uri: jsonUrl,
auth: {
user: process.env.EMODAL_id,
pass: process.env.EMODAL_pw,
sendImmediately: false
},
method: 'get'
}

rp(authOpts)
.then(resp => {
console.log(resp);
}).catch(err => { throw Error(err)});

我试着改变周围的一切。比如添加 header ,或将 json: true,或将 sendImmediately 更改为 true。什么都不管用。我有什么不明白或我做错了什么?

这是显示终端错误的图像: enter image description here

谢谢

最佳答案

根据我的理解,问题是:登录后可以成功显示url的页面,但是程序无法直接获取url本身。

此问题的原因是:request-promiseauth 选项(继承自模块 request)通过添加 Authorization 来工作HTTP 请求中的 header ( document )。这叫做 Basic access authentication许多服务器可能不支持。不幸的是,在当前的网络世界中,Basic access authentication 不再流行(它不安全),emodal.com 很可能不支持它。实际上,我在 www.emodal.com 中找到了一个名为 ASP.NET_SessionId 的 cookie,这表明该站点正在使用 SessionId cookie 来验证用户。

要解决此问题,我认为程序需要登录 并在登录成功后保存 SessionId cookie。然后,通过在 HTTP 请求 header 中添加 SessionId cookie 来获取 URL 资源。

关于javascript - 未处理的拒绝错误 : StatusCodeError: 401 (Unauthorized: Access is denied due to invalid credentials),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com