恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述HTTPHTTP请求体中的四种格式,requests库发送post请求相关的知识,希望能为你提供帮助。
编码后的字符串
import requests
payload =
report
Overall:良好
Progress: 30%
Problems:暂无
r = requests.post("http://httpbin.org/post",
data=https://www.songbingjia.com/android/payload.encode(utf8))
print(r.text)
XML如果设计者决定用 XML 格式传输一段信息,用Requests库,只需要这样
import requests
payload =
< ?xml version="1.0" encoding="UTF-8"?>
< WorkReport>
< Overall> 良好< /Overall>
< Progress> 30%< /Progress>
< Problems> 暂无< /Problems>
< /WorkReport>
r = requests.post("http://httpbin.org/post",
data=https://www.songbingjia.com/android/payload.encode(utf8))
print(r.text)
我们要传递的工作报告里面,存在的问题有 多个,用 XML 就可以这样表示
< ?xml version="1.0" encoding="UTF-8"?>
< WorkReport>
< Overall> 良好< /Overall>
< Progress> 30%< /Progress>
< Problems>
< problemno=1>
< desc> 问题1....< /desc>
< /problem>
< problemno=2>
< desc> 问题2....< /desc>
< /problem>
< /Problems>
< /WorkReport>
urlencoded这种格式的消息体就是一种 键值对的格式存放数据,如下所示
key1=value1& key2=value2
如果参数中本身就有特殊字符,比如等号,就会被看成参数的分隔符,只需要将这些键值对的数据填入一个字典。
然后使用post方法的时候,指定参数 data 的值为这个字典就可以了,如下
import requests
#payload ="key1=value1& key2=value2"可直接传入字符串
payload = key1: value1, key2: value2
r = requests.post("http://httpbin.org/post", data=https://www.songbingjia.com/android/payload)
print(r.text)
如果我们用工具抓包就可以发现 发送的http请求如下
json构建一个json 格式的字符串,可以使用json库的dumps方法
import requests,json
payload =
"Overall":"良好",
"Progress":"30%",
"Problems":[
"No" : 1,
"desc": "问题1...."
,
"No" : 2,
"desc": "问题2...."
,
]
r = requests.post("http://httpbin.org/post", data=https://www.songbingjia.com/android/json.dumps(payload))
也可以将 数据对象 直接 传递给post方法的 json参数,如下
r = requests.post("http://httpbin.org/post", json=payload)
【HTTPHTTP请求体中的四种格式,requests库发送post请求】
推荐阅读
- 测试Charles的map,rewrite,breakpoints的使用方法
- pythonprint和pprint的区别
- adbAndriod获取常用性能指标的方法
- 面试快手的客户端测试(直播)
- shell``和$()作用与区别
- 算法求一个数字在给定的已排序数组中出现的起始终止索引号
- JAVASession
- seleniumselenium find_element()详解
- Git入门第二讲(创建版本库)