代码如图 错误也列出来了 不知道改怎么更正


每当遇到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方法 要么就是你传递的参数格式有问题


推荐阅读:
相关文章