Python写的程序出问题了,不知道怎么改正?来请教大佬?
代码如图 错误也列出来了 不知道改怎么更正
每当遇到http错误代码为400,代表客户端发起的请求不符合伺服器对请求的某些限制,或者请求本身存在一定的错误。
建议核对网址是否正确--手动在浏览器中输入网址查看是否打开正确
urlopen(url, data=None, proxies=None) 用法
参数url表示远程数据的路径,一般是网址;
参数data表示以post方式提交到url的数据(玩过web的人应该知道提交数据的两种方式:post与get);参数proxies用于设置代理。报的错误400,意思是伺服器无法理解你的请求,也就是错误的请求. 所以应该是你payload数据类型有错误,看你的payload的数据类型是一个字元串,而urlopen函数接受的是python的字典类型.如: {data1: 111, data2: 222 }
楼上说的对,你自己查查 http 返回码的意思
参照http状态码400的含义 请求方式不对
首先每当遇到出错时,不要著急,如果英文能力还行的话,看看错误类型;如果不行的话,可以在线翻译下,大概理解一下!错误类型一般都在错误提示的最后一行!慢慢的自己就了解一些问题!
题主问的上面两位大神已经介绍了,可以试试!
为什么会邀请我,根本看不懂
错误不都写在报错里了么
res = urllib.request.urlopen(url,payload.encode("utf-8"))
在这行报 HTTP ERROR 400 bat request错误 伺服器无法理解你的请求
urllib的文档里 urllib.request.urlopen 这个函数「the HTTP request will be a POST instead of a GET when the data parameter is provided.」
要么就是这个地址不支持post方法 要么就是你传递的参数格式有问题
推荐阅读: