python3环境中,使用urllib的库时,urllib.request.Request方法中,是用来组成post的数据结构
req= request.Request(url=url,data=data,headers=headers)
此时会报错,类型不对
报错为“POST data should be bytes or an iterable of bytes...”
后改为如下方法,将body中的data以utf-8编码即可
req= request.Request(url=url,data=data.encode('utf-8'),headers=headers)
请求方法仍然是
response= request.urlopen(req)
当收到response时,使用read()同时解码即可,如下
response.read().decode('utf-8')
网上很多方法中会提到下面这个方法
urllib.parse.urlendcode
这个方法是用在将json格式文件url编码的,当body为字符串时,使用此方法无效,仍然是错误的
网友评论