gpt4 book ai didi

python - 使用 postman 的 GET 请求可以正常工作,但不能使用 python (HTTPSConnectionPool)

转载 作者:行者123 更新时间:2023-12-01 08:05:27 24 4
gpt4 key购买 nike

我正在尝试从API获取JSON,然后可以在使用django构建的网站上显示该JSON,并且该API是使用rest_framework制作的。我已经尝试了 Requests 和 http.client 但我得到了相同的错误:

HTTPSConnectionPool(host='webpageUrl' port=443):超过 url 的最大重试次数:/api/donations(由 ConnectTimeoutError 引起(

)

我尝试在 Postman 中使用 GET 请求进行调试,效果很好,但是当我使用 Requests 库文档中提供的示例或使用 Postman 中生成的代码片段时,我收到上述错误。此外,我以前有基本身份验证,我认为这是问题的根源,因此我关闭了身份验证,但它不起作用。

这是我当前正在尝试的代码:

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:

我尝试在我的个人计算机上运行 postman 的片段代码,该代码有效。我认为问题在于它无法使用我使用的方法向 API(位于同一服务器上)发出 HTTP 请求。此外,我尝试使用这种有效的方法运行不同的虚拟 API。

最佳答案

我发现我使用的方法对于内部 HTTPS 请求无效。我使用 ifconfig 来查看本地 IP 地址,并使用它代替主机,并将 IP 地址放在 settings.py 的 ALLOWED_HOSTS 中。此外,我使用 verify=False 禁用了 SSL 验证

def getDonations():

url = "https://172.19.10.5/api/donations"
payload = ""
headers = {
'cache-control': "no-cache",
}

response = requests.request("GET", url, data=payload, headers=headers, timeout=5, verify=False)
print(response.text)
return response.text

关于python - 使用 postman 的 GET 请求可以正常工作,但不能使用 python (HTTPSConnectionPool),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55561449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com