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