gengbo89 发表于 2022-12-2 17:33:14

python_requests发送form-data请求

如图的这个请求传的form-data格式,有大佬教我怎么写吗{:10_266:}

阿奇_o 发表于 2022-12-2 17:33:15

本帖最后由 阿奇_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 17:37:43

本帖最后由 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)

cflying 发表于 2022-12-2 17:38:49

百度一下不是直接有教程嘛

gengbo89 发表于 2022-12-2 17:56:49

suchocolate 发表于 2022-12-2 17:37


form-data格式直接data去传我试过不行呀。。。

cflying 发表于 2022-12-2 18:42:58

gengbo89 发表于 2022-12-2 17:56
form-data格式直接data去传我试过不行呀。。。

啥网站,发出来看看,指定content-type没

suchocolate 发表于 2022-12-2 19:11:26

gengbo89 发表于 2022-12-2 17:56
form-data格式直接data去传我试过不行呀。。。

已改

gengbo89 发表于 2022-12-2 19:41:13

url = "http://{}/password".format(qz_host)
    headers = {}
    data = {
      "username": (None,qz_user),
      "password": (None,qz_pass)
    }
    r = requests.post(url, files=data, headers=headers)

我最后是这样传的,是可以成功的

阿奇_o 发表于 2022-12-2 19:51:27

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:03:18

本帖最后由 gengbo89 于 2022-12-2 23:12 编辑

阿奇_o 发表于 2022-12-2 19:51
成功个啥,你都不理解。。 要是只是要个username和password,一般是指定 data={...} ,而不是 files={... ...

大哥,你是对的{:10_266:}

las6040 发表于 2022-12-4 11:17:53


感谢分享
页: [1]
查看完整版本: python_requests发送form-data请求