调用Twitter API遭遇ErrCode35连接重置问题求助
请求Twitter API时遭遇连接重置错误
代码片段
async def request_username(self): url = "https://twitter.com/i/api/1.1/account/settings.json" response, response_json = await self.request("POST", url) self.account.username = response_json["screen_name"]
报错信息
- 本地电脑运行错误:
执行失败,错误码:35,原因:'接收失败:连接已重置'。这可能是libcurl错误。 - 另一台电脑运行错误:
执行失败,错误码:35,原因:'BoringSSL SSL_connect: 连接到twitter.com:443时连接已重置'。这可能是libcurl错误。
curl命令测试
执行命令:
curl -v https://twitter.com/i/api/1.1/account/settings.json
输出(已翻译):
正在尝试连接104.244.42.65:443... 已连接到twitter.com (104.244.42.65) 端口443 schannel: 禁用客户端证书自动使用 ALPN: curl 支持 http/1.1 接收失败:连接已重置 schannel: 握手接收失败,SSL/TLS连接失败 正在关闭连接 schannel: 正在关闭与twitter.com端口443的SSL/TLS连接 发送失败:连接已重置 schannel: 发送关闭消息失败:向对等方发送数据失败(写入字节数:-1) curl: (35) 接收失败:连接已重置
已尝试无效的方案
- 安装新证书(当前已有600个)
- 安装OpenSSL
- 升级curl至最新版本
- 禁用SSL
- 尝试谷歌上多种常见解决方案
解决建议
- 修正请求方法与认证:Twitter的
account/settings.json接口需要GET请求而非POST,且必须携带有效的认证凭证(如Bearer Token或OAuth信息)。先把请求方法改为GET,并在请求头中添加正确的认证信息。 - 排查网络限制:连接重置多因IP被Twitter封禁、地区网络无法访问Twitter,或代理配置异常。尝试切换网络(如手机热点),检查代理是否正常工作。
- 指定TLS版本:强制使用TLS 1.2或1.3测试,命令示例:
curl -v --tlsv1.2 https://twitter.com/i/api/1.1/account/settings.json - 更换DNS解析:尝试更换DNS服务器(如8.8.8.8),避免解析到受限IP。
内容的提问来源于stack exchange,提问作者themarket
相关产品推荐
相关产品推荐

