网站安全狗卸载卸载不掉网页与网站设计
web/
2025/10/8 14:46:34/
文章来源:
网站安全狗卸载卸载不掉,网页与网站设计,网站备案是哪个部门,百度熊掌号wordpress简介
在HTTP协议中#xff0c;与get请求把请求参数直接放在url中不同#xff0c;post请求的请求数据需通过消息主体(request body)中传递。
且协议中并没有规定post请求的请求数据必须使用什么样的编码方式#xff0c;所以其请求数据可以有不同的编码方式#xff0c;服务…简介
在HTTP协议中与get请求把请求参数直接放在url中不同post请求的请求数据需通过消息主体(request body)中传递。
且协议中并没有规定post请求的请求数据必须使用什么样的编码方式所以其请求数据可以有不同的编码方式服务端通过请求头中的 Content-Type 字段来获知请求中的消息主体是何种编码方式再以对应方式对消息主体进行解析。
post请求参数常用的编码方式如下
application/x-www-form-urlencoded # form表单格式非常常见
multipart/form-data # 一般用于上传文件较为常见
application/json # json字符串格式非常常见
text/xml # xml格式关于post请求参数后面会有文章专门讲述这里不做过多的阐述。
requests.post()参数说明
使用requests库提供的post方法发送post请求requests.post() 源码如下
def post(url, dataNone, jsonNone, **kwargs):rSends a POST request.:param url: URL for the new :class:Request object.:param data: (optional) Dictionary, list of tuples, bytes, or file-likeobject to send in the body of the :class:Request.:param json: (optional) json data to send in the body of the :class:Request.:param \*\*kwargs: Optional arguments that request takes.:return: :class:Response Response object:rtype: requests.Responsereturn request(post, url, datadata, jsonjson, **kwargs)参数说明 url请求网址 data字典、元组列表、字节或要发送到指定URL的文件对象可选即可填可不填 json要发送到指定URL的JSON对象可选 **kwargs可以添加其他请求参数如headers、timeout、cookies等
post接口中常用的编码格式在python脚本中对应的请求参数的格式一般就是 dict (字典) 或 json如 application/x-www-form-urlencoded 格式在python中对应为dictapplication/json 在python中对应为json。
因此接下来分别这种编码格式进行举例。
发送post请求请求参数格式为dict
我们以请求TesterHome网的登录接口为例发送请求参数格式为dict的请求。
请求头中content-type为application/x-www-form-urlencoded;charsetUTF-8如下图所示 那么请求参数编码格式应为dict代码如下
import requestsdef testerhome_login():# data为请求入参data {user[login]: 账号,user[password]: 密码,user[remember_me]: 0,commit: 登录}headers {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53\7.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36}url https://testerhome.com/account/sign_in# 编码格式为application/x-www-form-urlencoded;charsetUTF-8所以请求参数为dict使用data参数res requests.post(urlurl, headersheaders, datadata)print(res.text)print(res.status_code)if __name__ __main__:testerhome_login()运行结果如下 由打印出来的返回内容我们可以判断该接口请求成功。
发送post请求请求参数格式为json
这里我用flask框架写了个简单的模拟接口来演示接口代码如下
from flask import Flask, jsonify, requestapp Flask(__name__)
app.config[JSON_AS_ASCII] Falseapp.route(/login, methods[POST])
def login():username request.json.get(username).strip()password request.json.get(password).strip()print(username, password)if username and password:if username lilei and password 123456:return jsonify({code: 1000, msg: 登录成功, token: sh34ljjl08s32730dj})elif username hanmeimei and password 888888:return jsonify({code: 1000, msg: 登录成功, token: hjf078977l08ert2323k})else:return jsonify({code: 1001, msg: 账号或密码错误})else:return jsonify({code: 1002, msg: 账号或密码不能为空})if __name__ __main__:app.run()注意需要先安装flask框架然后运行该模块具体可参考我之前的文章使用Flask开发简单接口运行后我们可以看到该接口服务的 host 地址如下 这个接口的请求参数格式需要为jsonrequests.post()请求这个接口代码如下
import requests
import jsonheaders {Content-Type: application/json;charsetutf8}
url http://127.0.0.1:5000/login
_data {username: lilei,password: 123456
}# 这里使用json参数即json_data
res requests.post(urlurl, headersheaders, json_data).text
# 当然还可以使用data参数但需先将_data转换为json格式即datajson.dumps(_data)
# json.dumps()将dict格式转换成json格式
res requests.post(urlurl, headersheaders, datajson.dumps(_data)).text
print(res)运行结果如下 总结
post请求因为请求主体编码格式的原因在使用 requests.post() 时需要根据接口请求头中Content-Type字段为请求参数选择指定的编码格式才能发送请求。其实get请求的请求参数也有其对应的编码格式至于如何确定get、post请求参数的格式且听下回详解。 自动化测试相关教程推荐 2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂_哔哩哔哩_bilibili 2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华学完年薪40W_哔哩哔哩_bilibili 测试开发相关教程推荐 2023全网最牛字节测试开发大佬现场教学从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili postman/jmeter/fiddler测试工具类教程推荐 讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程学jmeter接口测试一套教程就够了_哔哩哔哩_bilibili 2023自学fiddler抓包请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程_哔哩哔哩_bilibili 2023全网封神B站讲的最详细的Postman接口测试实战教学小白都能学会_哔哩哔哩_bilibili 总结 光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。 如果对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片博主也希望和志同道合的测试人员一起学习进步
在适当的年龄选择适当的岗位尽量去发挥好自己的优势。
我的自动化测试开发之路一路走来都离不每个阶段的计划因为自己喜欢规划和总结
测试开发视频教程、学习笔记领取传送门
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89106.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!