gpt4 book ai didi

node.js - 将 http 请求从 cURL 转换为 Node http.request

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:37 32 4
gpt4 key购买 nike

我在 Node 中的基本身份验证方面遇到了一些问题。

以下是我如何通过 cURL 作为子进程来完成此操作:

var auth = 'Basic ' + new Buffer(username + ":" + password).toString('base64');
var url = 'https://' + hostname + path;

var curlstr = "curl #{url} -H 'Authorization: #{auth}'"
.replace('#{url}', url)
.replace('#{auth}', auth);

require('child_process').exec(curlstr, function (err, stdout, stderr){
console.log(stdout);
});

但是当我尝试 https.request 时它返回 403:

var req = https.request({
hostname: hostname,
path: path,
headers: {'Authorization': auth}
}, function (res){
console.log(res.statusCode);
});

req.end();

我得到了与 request 相同的结果:

request({
method: 'GET',
url: url,
auth: {
username: username,
password: password
}
}, function (err,res,body){
console.log(res.statusCode);
});

知道我在这里做错了什么吗?

最佳答案

由于它是 https,因此可以尝试添加值为 443port 选项。

var req = https.request({
hostname: hostname,
port: 443,
path: path,
headers: {'Authorization': auth}
}, function (res){
console.log(res.statusCode);
});

req.end();

或者使用auth选项而不是header。引用:http://nodejs.org/api/http.html#http_http_request_options_callback

var req = https.request({
hostname: hostname,
port: 443,
path: path,
auth: username + ':' + password
}, function (res){
console.log(res.statusCode);
});

req.end();

关于node.js - 将 http 请求从 cURL 转换为 Node http.request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021995/

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