[英]For python, what does it mean for <class 'requests.models.Response'>
[英]What does this Python requests error mean?
这个 Python 请求错误是什么意思? 这是否意味着它尝试连接到服务器但不能? [Errno 8] nodename nor servname provided, or not known
是什么意思?
文件“python2.7/site-packages/requests/api.py”,第 55 行,在 get
文件“python2.7/site-packages/requests/api.py”,第 44 行,请求
请求中的文件“python2.7/site-packages/requests/sessions.py”,第 279 行
文件“python2.7/site-packages/requests/sessions.py”,第 374 行,发送
文件“python2.7/site-packages/requests/adapters.py”,第 209 行,发送
ConnectionError: HTTPConnectionPool(host='localhost', port=8091): Max retries exceeded with url: /pools/default (Caused by: [Errno 8] nodename or servname provided, or not known
代码生成了这个: http://github.com ...
class RestConnection(object):
def __init__(self, serverInfo):
#serverInfo can be a json object
if isinstance(serverInfo, dict):
self.ip = serverInfo["ip"]
self.username = serverInfo["username"]
self.password = serverInfo["password"]
self.port = serverInfo["port"]
self.couch_api_base = serverInfo.get("couchApiBase")
else:
self.ip = serverInfo.ip
self.username = serverInfo.rest_username
self.password = serverInfo.rest_password
self.port = serverInfo.port
self.couch_api_base = None
self.base_url = "http://{0}:{1}".format(self.ip, self.port)
server_config_uri = ''.join([self.base_url, '/pools/default'])
self.config = requests.get(server_config_uri).json()
# if couchApiBase is not set earlier, let's look it up
if self.couch_api_base is None:
#couchApiBase is not in node config before Couchbase Server 2.0
self.couch_api_base = self.config["nodes"][0].get("couchApiBase")
仅供参考,此错误是从 Couchbase Python 客户端生成的。
这意味着您尝试访问的主机名的 DNS 查找失败。 例如,如果我尝试查找无效的主机名,则会收到相同的错误:
>>> import requests
>>> requests.get('http://apsoapsodjaopisjdaoij.com')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 65, in get
return request('get', url, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/safe_mode.py", line 39, in wrapped
return function(method, url, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 51, in request
return session.request(method=method, url=url, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 241, in request
r.send(prefetch=prefetch)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/models.py", line 631, in send
raise ConnectionError(sockerr)
requests.exceptions.ConnectionError: [Errno 8] nodename nor servname provided, or not known
检查serverInfo["ip"]
并确保其设置正确。
为以后遇到这种情况的人添加我自己的经验。
事实证明,这实际上是因为我已达到系统上打开文件的最大数量。 它与失败的连接无关,甚至与指示的 DNS 错误无关。
DNS 不正确,例如,当您不在 docker 服务本身上时,使用http://host.docker.internal:8000
服务并调用http://host.docker.internal:8000
而不是http://localhost:8000
时。
如果您因为 twitter api 出现此错误而来到这里,请尝试重新生成您的 Bearer 令牌,它会正常工作。
我在尝试连接到 .onion 站点时遇到了这个错误,结果我所要做的就是在我的袜子代理名称前面加上“h”,如下所示:
proxies = {
'http': 'socks5h://127.0.0.1:9050',
'https': 'socks5h://127.0.0.1:9050'
}
这可能不是您的解决方案,但我发布此答案以防万一与我有相同问题的人来这里寻找解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.