urllib.request'Request'对象没有属性'getcode'并读取

时间:2018-10-03 07:24:08

标签: python python-3.x urllib urllib3

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 :(得分:2)

urllib.request.Requesturllib.request模块用来抽象请求的类。要发出HTTP请求,请改用urllib.request.urlopen

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

答案 1 :(得分:1)

您命名为response的变量实际上是urllib.request.Request的实例。如果您需要响应,则需要先发送请求,然后使用urllib.request.urlopen()完成。

但是,我建议您尝试使用更易于使用的requests模块,而不要弄清楚如何使用python urllib.request。例如,您的代码可以这样表示:

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)