我一直在调用一个 api (Yelp) 并使用它来运行多个位置的“搜索”功能。有时效果很好,有时,它会返回一个令我感到困惑的错误。我在看很多地方,所以我一直在限制它,看看数量是否有问题(似乎不是这样。) 我在 5 个位置运行搜索。它有效,但如果我再次运行它,我会收到错误消息。然后我在 3 个位置运行它,它不起作用。然后我在 4 上运行它,它恰好可以工作。我再试一次,它不会工作。我觉得我的电脑在和我玩游戏。这是我不断收到的错误:
(一些关于最近通话的代码)
File "C:\Python27\lib\urllib2.py", line 409, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 1240, in https_open
context=self._context)
File "C:\Python27\lib\urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error EOF occurred in violation of protocol (_ssl.c:590)>
这是怎么回事??!!
最佳答案
您没有发布您的 python 版本或任何其他版本信息或进行任何网络跟踪。但是,我之前在旧的 python 版本中看到过类似的问题,它发送与 SSLv2 兼容的 ClientHello 消息,Yelp API 服务器可能不再支持该消息。如果您运行的是 2.7.10 之前的 python 版本,我怀疑很可能是这种情况。
此处提供了有关 python SSL 模块更改的更多信息: https://fossies.org/diffs/Python/2.7.9_vs_2.7.10/Doc/library/ssl.rst-diff.html
关于python - 调用 API 时 urllib2 出现 URL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34504435/