1
我使用pyhton manage.py shell。当我送下面的代码:urllib.URLopener()。检索给我HTTP错误403
import requests
import json
import urllib
import gzip
import csv
from usuario.models import Usuario
from calculadora.models import Prazo
r = requests.post("https://onesignal.com/api/v1/players/csv_export?app_id=*****", headers={"Authorization": "Basic *****"})
url = json.loads(r.content)["csv_file_url"]
file = urllib.URLopener()
file.retrieve(url, "C:\Users\legal\Desktop\file.gz")
f = gzip.open("C:\\Users\\legal\\Desktop\\file.gz")
arquivo = csv.reader(f)
出现以下错误:
IOError: ('http error', 403, 'Forbidden', <httplib.HTTPMessage instance at 0x05551990>)
但是,如果我先发:
import requests
import json
import urllib
import gzip
import csv
from usuario.models import Usuario
from calculadora.models import Prazo
r = requests.post("https://onesignal.com/api/v1/players/csv_export?app_id=*****", headers={"Authorization": "Basic ******"})
url = json.loads(r.content)["csv_file_url"]
file = urllib.URLopener()
然后:
file.retrieve(url, "C:\Users\legal\Desktop\file.gz")
f = gzip.open("C:\\Users\\legal\\Desktop\\file.gz")
arquivo = csv.reader(f)
代码运行机智没有任何错误,我不明白发生了什么事。
检查,如果你的授权密钥是正确的。 403通常意味着服务器收到您的请求,但拒绝回复 – Qwerty
是的,这是正确的,我已经检查过。代码运行,如果我发送一部分,但如果我立即发送,不起作用。我需要将代码放在“file = urlib.URLopener()”上。 – ffgg