python - Django 中带有代理的外部 API 请求

标签 python django python-requests wsgi

我在 127.0.0.1:8080 有一个本地代理服务
我可以使用它进行 api 调用,但不能在 django 中调用,出于某种原因,它可以在常规 python 代码(即 python test.py )中运行,但不能在 django 中运行。

import requests

proxies = {
    'http': 'http://127.0.0.1:8080',
    'https': 'https://127.0.0.1:8080',
}

response = requests.get('https://api.ipify.org?format=json', proxies=proxies)
Django v3.0.8和请求 v2.24.0我有一个假设 WSGI 以某种方式覆盖了我的代理设置
错误
HTTPSConnectionPool(host='api.ipify.org', port=443): Max retries exceeded with url: /?format=json (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa922093340>: Failed to establish a new connection: [Errno 111] Connection refused')))

最佳答案

对于遇到此问题的任何人,这是一个 docker 网络问题。 127.0.0.1在 docker 容器中引用内部 docker 网络,而不是您本地环境的网络。使用 172.17.0.1指定您的本地环境。

关于python - Django 中带有代理的外部 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63100450/

相关文章:

python - 对动态设置的 MultipleChoiceField 进行验证,该字段最初为空?

pandas - 使用 Python 将 OECD 数据下载到数据框中

python - Tkinter 应用程序中可能存在锁定问题

python - 如何正确设置 json 文件中的重复字段

python - 如何在pyqt中创建一个滚动区域

python - Django:如何在没有此类实例的情况下对另一个类进行反向外键查找?

Django 通用 View - 访问请求

python - 使用gevent访问外部http服务时出现间歇性问题

python - 在 Python 中创建 POST 请求

python - Airflow:创建一次性动态 SubDag