urllib.request «Запрос» объект не имеет атрибута «getcode» и читать - PullRequest
0 голосов
/ 03 октября 2018

Я получаю сообщение об ошибке для оператора print Объект «Запрос» не имеет атрибута «getcode» и читает

sample = '[{{ "t": "{0}", "to": "{1}", "evs": "{2}", "fds": {3} }}]'

response = urllib.request.Request(REST_API_URL, sample.encode('utf-8'))

print("Response: HTTP {0} {1}\n".format(response.getcode(), response.read()))

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

переменная, которую вы назвали response, на самом деле является экземпляром urllib.request.Request.если вы хотите получить ответ, вам нужно сначала отправить запрос, и это делается с помощью urllib.request.urlopen().

НО, вместо того, чтобы выяснить, как использовать python urllib.request, я предлагаю вам попробовать requests модуль, который НАМНОГО проще в использовании.Например, ваш код может быть выражен так:

import requests
resp = requests.post(REST_API_URL, json=[{{ "t": "{0}", "to": "{1}", "evs": "{2}", "fds": {3} }}])
print("Response: HTTP {} {}".format(resp.statuscode, resp.content)
0 голосов
/ 03 октября 2018

urllib.request.Request - это класс, который модуль urllib.request использует для абстрагирования запроса.Чтобы сделать HTTP-запрос, вы должны использовать urllib.request.urlopen вместо:

response = urllib.request.urlopen(REST_API_URL, sample.encode('utf-8'))
...