python - ConnectionError: ('Connection aborted.', gaierror(-2, 'Name or service not known'))
问题描述
我正在使用 requests.get (导入请求)通过连接到一些 HTTP 端点来抓取一些指标。
我可以在手动运行命令时运行连接到端点 -
>>> import requests
>>>
>>> output = requests.get("http://10.206.124.139:9209/metrics/8ebab4dd- 84bd-48c2-998c-aade88d8c82c/46567dbe-24d0-4cca-b432-a28ac5e831ec/0e297dfe-c64d-4139-bb14-a884c3e1ebc9/dbd5ca46-de73-4fe0-8273-9a9a0f5faa7a/549b0b1a-d3cc-47f0-8917-3919cb432aa6")
>>> output.text ---> I am able to see the output.
当我尝试通过我的 python 脚本运行相同的命令时,出现以下错误-
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', gaierror(-2, 'Name or service not known'))
我的代码片段 -
target_end_point = target_end_point.replace("127.0.0.1:10090", self.replace_string)
metrics = requests.get('http://%s' % target_end_point)
当我打印时,target_end_point 如下所示 -
final target endpoint is "10.206.124.139:9209/metrics/8ebab4dd-84bd-48c2-998c-aade88d8c82c/46567dbe-24d0-4cca-b432-a28ac5e831ec/0e297dfe-c64d-4139-bb14-a884c3e1ebc9/dbd5ca46-de73-4fe0-8273-9a9a0f5faa7a/549b0b1a-d3cc-47f0-8917-3919cb432aa6"
你能帮忙吗?
解决方案
当您将字符串插入函数调用时,字符串的 python repr 与 requests.get() 调用不兼容。这是 python 提供给调用的内容(注意额外的引号):
repr(target_endpoint) # -->"'127.0.0.1:10090/metrics/8ebab4dd-84bd-48c2-998c-aade88d8c82c/46567dbe-24d0-4cca-b432-a28ac5e831ec/0e297dfe-c64d-4139-bb14-a884c3e1ebc9/dbd5ca46-de73-4fe0-8273-9a9a0f5faa7a/549b0b1a-d3cc-47f0-8917-3919cb432aa6'"
将字符串转换为字节:
target_end_point = target_end_point.replace("127.0.0.1:10090", self.replace_string)
target_end_point = target_end_point.encode() # encode the variable
metrics = requests.get(b'http://' + target_end_point) # change the 'http:// to a bytestring
你应该很高兴。
推荐阅读
- java - 当我尝试打开数据库存储写入器时,android studio 无法打开下一页或有时会显示“不断停止”消息
- sql - 在分析服务中处理时出错
- ssh - 合并 ssh 配置
- python-3.x - 如何从数据库中获取数据并分别在 django 的引导模式框(弹出)中显示?
- arrays - 通过散列键搜索散列数组及其在 Perl 中的排序
- php - 用户登录 MVC 框架后更改默认路由
- eclipse - 有没有办法为在 Eclipse 中有两个不同工具链的 2 个嵌套项目共享相同的文件目录?
- deep-linking - 当应用程序显示弹出视图时,无法使用动态链接(Firebase)转到 DetailViewcontroller
- android - 在 Scroll RecycleView 上加载下一篇文章时出现错误
- java - 为什么我不能在 java java.lang.Enum 泛型类型定义中重复出现?