我正在遵循本指南:https://ultimatedjango.com/blog/how-to-consume-rest-apis-with-django-python-reques/
我想知道如何使用代理发出这些请求?我在想这个部分应该修改一下:
def save_embed(request):
if request.method == "POST":
form = SubmitEmbed(request.POST)
if form.is_valid():
url = form.cleaned_data['url']
r = requests.get('http://api.embed.ly/1/oembed?key=' + settings.EMBEDLY_KEY + '&url=' + url)
有更简单的方法吗?我想每次使用相同的代理来获得相同的API密钥。 (2-3个api键) 干杯
答案 0 :(得分:0)
您可以将"proxies" argument传递给request.get方法,该方法包含用于不同协议的代理服务器字典,因此代码将变为。
def save_embed(request):
if request.method == "POST":
form = SubmitEmbed(request.POST)
if form.is_valid():
url = form.cleaned_data['url']
proxies = {
"http": "http://123.123.123.123:1234",
"https": "https://123.123.123.123:1234",
}
r = requests.get('http://api.embed.ly/1/oembed?key=' + settings.EMBEDLY_KEY + '&url=' + url, proxies=proxies)
答案 1 :(得分:0)
您还可以通过设置环境变量HTTP_PROXY和HTTPS_PROXY来配置代理。
$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="http://10.10.1.10:1080"
$ python
>>> import requests
>>> requests.get('http://example.org')
参考:https://2.python-requests.org//en/latest/user/advanced/#proxies
如果在响应服务器仅处理来自列入白名单的IP的请求的本地开发环境中使用该方法,则建议使用此方法。