python自动提交表单_python接口自动化(二十二) multipart/form-data表单提交

前言

multipart/form-data这种格式官方文档给的参考案例比较简单,实际情况中遇到会比较复杂,本篇讲解multipart/form-data的表单如何提交,非图片上传。

禅道提交bug

1.以禅道提交bug为参考案例,手动操作一次提交bug,抓包查看Content-Type:multipart/form-data

2.在webForms里面查看参数详情

参数填写

1.注意了,这里的参数对应为字典格式,字典的key对应WebForms里查看的name=“这里的参数”,value对应WebForms查看的value值。

bd={

"product":"6",

"module":"0",

"project":"5",

"openedBuild[]":"trunk",

"assignedTo":"huyongqin",

"type":"codeerror",

"title":"测试8866",

"severity":"1",

"pri":"2",

"steps":"

[步骤]打开浏览器;

[结果]打不开

[期望]可以打开


",

"oldTaskID":"0",

"uid":"5f2b6ce9192a9",

"case":"0"

}

参考代码

1.multipart/form-data这里传的是data参数。

2.请求头部不要加Content-Type:multipart/form-data这个参数,加了执行不会成功。

# coding:utf-8

import requests

import re

import hashlib

pw="P@ssw0rd"

s=requests.Session()

headers={

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"

}

vrand=0

while(True):

rs1=s.get("http://localhost/zentaopms/www/user-login.html",headers=headers)

rs1.encoding='utf-8'

#print(rs1.text)

rand=re.findall(r"'verifyRand' value='(.+?)'",rs1.text)

#print(rand[0])

if len(rand[0])==10:

vrand=rand[0]

break

print(vrand)

#方式一

hash=hashlib.md5()

hash.update(pw.encode('utf-8'))

f=hash.hexdigest()+vrand

#print(f)

#方式二

hash2=hashlib.md5(f.encode('utf-8'))

pwd=hash2.hexdigest()

print(pwd)

data={

"account":"admin",

"password":pwd,

"referer":"http://localhost/zentaopms/www/bug-browse-6.html",

"verifyRand":vrand

}

rs2=s.post("http://localhost/zentaopms/www/user-login.html",headers=headers,data=data)

rs2.encoding='utf-8'

#print(rs2.text)

rs3=s.get("http://localhost/zentaopms/www/bug-browse-6.html",headers=headers)

rs3.encoding='utf-8'

#print(rs3.text)

result=re.findall(r"\(.+?)\",rs3.text)

print(result)

if result[0]=="退出":

print("登录成功")

#提交bug

burl="http://localhost/zentaopms/www/bug-create-6-0-moduleID=0.html"

bd={

"product":"6",

"module":"0",

"project":"5",

"openedBuild[]":"trunk",

"assignedTo":"huyongqin",

"type":"codeerror",

"title":"测试8866",

"severity":"1",

"pri":"2",

"steps":"

[步骤]打开浏览器;

[结果]打不开

[期望]可以打开


",

"oldTaskID":"0",

"uid":"5f2b6ce9192a9",

"case":"0"

}

rp=s.post(burl,data=bd)

rp.encoding="utf-8"

print(rp.text)

运行结果:

查看禅道系统,发现有刚刚提交的bug。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提供了一种在Python3下使用requests库发送multipart/form-data类型请求的方法。这种类型的请求是用于上传文件或发送二进制数据的常见方式。通过使用requests库的post方法,将请求的URL和请求的参数以字典的形式传入即可发送multipart/form-data类型的请求。引用介绍了使用requests库发送application/x-www-form-urlencoded请求数据的方法。这种类型的请求常用于提交表单数据。通过使用requests库的post方法,将请求的URL和请求的参数以字典的形式传入即可发送application/x-www-form-urlencoded类型的请求。引用给出了一个示例函数client_post_mutipart_formdata_requests,该函数可以用于发送multipart/form-data类型的请求,并接收请求的URL和请求的参数作为参数。综上所述,要使用Python的requests库发送multipart/form-data类型的请求,可以使用post方法,并将请求的URL和请求的参数以字典的形式传入。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python使用requests发送multipart/form-data请求数据](https://blog.csdn.net/weixin_39638048/article/details/110763239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值