>>> import urllib.parse
>>> import urllib.request
>>> data=bytes(urllib.parse.urlencode({'word':'hello'}),encoding='utf-8')
>>> response=urllib.request.urlopen('http://httpbin.org/post',data=data)
>>> print(response.read())
b'{\n "args": {}, \n "data": "", \n "files": {}, \n "form": {\n "word": "hello"\n }, \n "headers": {\n "Accept-Encoding": "identity", \n "Content-Length": "10", \n "Content-Type": "application/x-www-form-urlencoded", \n "Host": "httpbin.org", \n "User-Agent": "Python-urllib/3.7"\n }, \n "json": null, \n "origin": "139.170.2.252, 139.170.2.252", \n "url": "https://httpbin.org/post"\n}\n'
>>>
应该是print相关的问题,里面的参数添加不合理
print(response.read())改为print(response.read().decode('utf-8'))即可
>>> response=urllib.request.urlopen('http://httpbin.org/get',timeout=1)
>>> print(response.read().decode('utf-8'))
{
"args": {},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.7"
},
"origin": "139.170.2.252, 139.170.2.252",
"url": "https://httpbin.org/get"
}