首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同curl请求成功时,nodejs https#request失败

相同curl请求成功时,nodejs https#request失败
EN

Stack Overflow用户
提问于 2016-05-15 04:46:38
回答 2查看 973关注 0票数 7

我正在尝试连接到twitter api的公共流端点。

当我运行从nodejs中的twitter api测试工具获得的示例参数时,我得到了下面的401 unauthorized错误,您可以看到我的nodejs示例请求

代码语言:javascript
复制
 'use strict';
const https = require('https');
const qs = require('querystring');
const obj = {
    method: "POST",
    headers: {
        Authorization: 'OAuth oauth_consumer_key="pXZ8xSWvjZjE4UaNntVsCwWPg", oauth_nonce="776f1a4ec0c3ed9ecbfb68aa0f7e2324", oauth_signature="jk8e84V0OcgcepkL7F%2BXt2fAy8o%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1463258508", oauth_token="416282416-vFTMVJCFiRW8G6nwoFhH3OBqrJsKDbIJ93sbOm2a", oauth_version="1.0"'
    },
    hostname: "stream.twitter.com",
    path: "/1.1/statuses/filter.json"
}
https.request(obj,res => {
    res.on("data", d => {
        console.log(d.toString());
    });
}).end(qs.stringify({track:"javascript"}))

但是如果我用curl发送这个请求,它就能很好地工作,下面是我的curl请求示例

代码语言:javascript
复制
curl --request 'POST' 'https://stream.twitter.com/1.1/statuses/filter.json' --data 'track=javascript' --header 'Authorization: OAuth oauth_consumer_key="pXZ8xSWvjZjE4UaNntVsCwWPg", oauth_nonce="776f1a4ec0c3ed9ecbfb68aa0f7e2324", oauth_signature="jk8e84V0OcgcepkL7F%2BXt2fAy8o%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1463258508", oauth_token="416282416-vFTMVJCFiRW8G6nwoFhH3OBqrJsKDbIJ93sbOm2a", oauth_version="1.0"' --verbose 

我做错了什么?它们是完全相同的请求。

EN

回答 2

Stack Overflow用户

发布于 2016-05-17 23:03:03

您不能在OAuth请求中硬编码时间戳。如果您呈现的代码就是您正在使用的代码,那么这可能就是问题的原因。我建议您使用oauth包来生成Authorization。

票数 5
EN

Stack Overflow用户

发布于 2021-06-14 21:44:03

同样的事情也发生在我身上,我最终使用axios库来解决这个问题。

不确定axios和内置https请求之间的区别,但事实是,使用axios可以在https请求失败的地方工作。( curl也同样有效。)

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

https://stackoverflow.com/questions/37231684

复制
相关文章

相似问题

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