【发布时间】:2019-08-28 21:29:58
【问题描述】:
我正在尝试从 API 获取 JSON,然后可以在使用 django 构建的网站上显示该 API,并且 API 是使用 rest_framework 制作的。我已经尝试过 Requests 和 http.client 但我得到了同样的错误:
HTTPSConnectionPool(host='webpageUrl' port=443):最大重试次数超出了 url:/api/donations(由 ConnectTimeoutError 引起(
我尝试在 Postman 中使用 GET 请求进行调试,效果很好,但是当我使用 Requests 库文档中提供的示例或使用 Postman 中生成的代码 sn-p 时,我得到了上述错误。此外,我之前有基本身份验证,我认为这是问题的根源,因此我关闭了身份验证但它不起作用。
这是我目前正在尝试的代码:
import requests
def available_donations(request):
assert isinstance(request,HttpRequest)
response = requests.get("webpageUrl/api/donations", headers={'Content-Type':'application/json'}, timeout=5)
return render(
request,
'app/availableDonations.html', {'donation':response},
{
'title':'Overview of available donations'
})
我预计会收到有关网页呈现的错误,但是从我可以从不同的 stackoverflow 问题中读取到的错误意味着它找不到网页。
提前致谢!
编辑1:
我尝试在我的个人计算机上运行来自邮递员的 sn-p 代码,它可以工作。我认为问题在于它无法使用我使用的方法向 API(位于同一台服务器上)发出 HTTP 请求。此外,我尝试使用这种有效的方法运行不同的虚拟 API。
【问题讨论】:
-
postman 中有 SSL 验证设置。如果你把它关掉,这个请求在邮递员中仍然有效吗?
-
我尝试在 Postman 中关闭 SSL 证书验证,但它仍然有效。
-
几个问题:python 代码是否在您运行 Postman 的同一台机器上运行?它是在本地运行还是在容器或虚拟机中运行?这听起来更像是网络问题,而不是 Python / 请求问题。
-
python代码运行在不同机器上的Linux服务器上,邮递员在我的个人电脑上
标签: python django django-rest-framework python-requests postman