python_requests发送form-data请求
如图的这个请求传的form-data格式,有大佬教我怎么写吗{:10_266:} 本帖最后由 阿奇_o 于 2022-12-2 19:44 编辑form-data 一般是用来 传文件的!所以对应的 Content-Type 也要写合适的文件类型(接口要求什么就是什么)。
具体例子,比如要上传一张图片文件,用requests库,就是像这样写:
request.request('POST', url,files={'media': open('my_image.png', 'rb')}, headers=...., cookies=...)
# 所以,在Postman里,如果你要用 form-data 形式上传数据,也有点击select某个文件作为value,才行。键的名字 则需要根据接口要求填,什么是就是什么。
其中请求头headers里的 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAAsyMsKEKyIN259z (类似这样的)
# 注意看 这里 就是要 form-data(当然这只是你客户端告诉服务端 "我是这样的内容类型",具体是否符合,还要看它后端怎么处理)
ps: requests.request() 的 POST传参,如果 指定 data 参数 则对应的 Content-Type 是 application/x-www-form-urlencoded; ....
本帖最后由 suchocolate 于 2022-12-2 19:10 编辑
import requests
headers={'User-Agent': 'Mozilla/5.0', 'Content-Type': 'multipart/form-data'}
data={
'username': 'admin',
'password': '123456'
}
r=requests.post('your url', data=data, headers=headers)
print(r.status_code)
百度一下不是直接有教程嘛 suchocolate 发表于 2022-12-2 17:37
form-data格式直接data去传我试过不行呀。。。 gengbo89 发表于 2022-12-2 17:56
form-data格式直接data去传我试过不行呀。。。
啥网站,发出来看看,指定content-type没 gengbo89 发表于 2022-12-2 17:56
form-data格式直接data去传我试过不行呀。。。
已改 url = "http://{}/password".format(qz_host)
headers = {}
data = {
"username": (None,qz_user),
"password": (None,qz_pass)
}
r = requests.post(url, files=data, headers=headers)
我最后是这样传的,是可以成功的 gengbo89 发表于 2022-12-2 19:41
url = "http://{}/password".format(qz_host)
headers = {}
data = {
成功个啥,你都不理解。。 要是只是要个username和password,一般是指定 data={...} ,而不是 files={...}
但为什么它们都可以呢? 因为它们都会作为 请求体的内容 post过去。。
所以只要你headers没问题,鉴权cookie等也没问题,肯定能正常成功POST过去。 本帖最后由 gengbo89 于 2022-12-2 23:12 编辑
阿奇_o 发表于 2022-12-2 19:51
成功个啥,你都不理解。。 要是只是要个username和password,一般是指定 data={...} ,而不是 files={... ...
大哥,你是对的{:10_266:}
感谢分享
页:
[1]