【问题标题】:OS X 10.11.6 El Capitan SSLRead() return error -9841OS X 10.11.6 El Capitan SSLRead() 返回错误 -9841
【发布时间】:2016-12-31 04:39:15
【问题描述】:

在终端向 https 网站发出 curl 请求后,我遇到了这个错误

curl: (56) SSLRead() return error -9841

卷曲--版本

curl 7.43.0 (x86_64-apple-darwin15.0) libcurl/7.43.0 SecureTransport zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets

如何让 curl 工作?

P.S 我通过这个命令重新安装了 curl brew install --with-openssl curl

【问题讨论】:

  • 因此,您可以删除问题,因为错误不可重现,因为您声明重启后一切正常。
  • @lorond 虽然他没有确定原因或提供重现的方法,但其他人知道重启解决了问题仍然有用。将来,有人可能会找到更好的解决方案。
  • @RobinDaugherty 我想如果简单的重启有帮助,可能有很多原因,很可能只是配置错误或加载不正确。那个会发生。由于这个特定问题不可重现,因此没有理由保留这个问题。没有人能提供更好的解决方案,因为没有人能确定它是否是一个解决方案——没有办法检查它。猜测原因是你能做的最好的事情。此外,作为解决方案重新启动是题外话,因为它与编程无关,因为这是一个实际的解决方案,这个问题也可能是题外话。
  • @lorond 我认为你说得对,这是题外话,但我认为这就是问题本身......它首先不是代码问题。
  • 这个问题+答案帮助我立即解决了我的问题。这个问题不应该被否决或删除。

标签: macos ssl curl https terminal


【解决方案1】:

Sierra 也有同样的问题,而且似乎即使在运行 brew install --with-openssl curl 之后,它仍然不会被路径拾取。

首先,我必须使用brew install --force --with-openssl curl 强制安装软件包

然后我不得不强制将新版本的 curl 与 brew link --force curl 链接

关闭并重新打开我的终端后,它起作用了(这可能是使重启工作与上述答案一起工作的原因)。

【讨论】:

  • 这为我修复了它...如果您已经在brew 之外安装了curl,请确保brew 安装curl 的路径由which curl 命令返回
【解决方案2】:

我刚刚遇到此错误...在我的情况下,“SSLRead”是一个红鲱鱼。主机返回内容长度:0(并且没有响应正文)

显然主机拒绝了缺少某些标头的请求...为了更好地衡量,我在网络浏览器发送的请求中添加了几个标头..

array( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: en-US,en;q=0.5', 'Accept-Encoding: gzip, deflate', 'Connection: keep-alive', ),

tada...不再出现 SSLRead 错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2018-02-28
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多