requests是常用的请求库,不管是写爬虫脚本,还是测试接口返回数据等。都是很简单常用的工具。
这里就记录一下如何用requests发送json格式的数据,因为一般我们post参数,都是直接post,没管post的数据的类型,它默认有一个类型的,貌似是 application/x-www-form-urlencoded。
但是,我们写程序的时候,最常用的接口post数据的格式是json格式。当我们需要post json格式数据的时候,怎么办呢,只需要添加修改两处小地方即可。
详见如下代码:
import requests
import json
data = {
'a': 123,
'b': 456
## headers中添加上content-type这个参数,指定为json格式
headers = {'Content-Type': 'application/json'}
## post的时候,将data字典形式的参数用json包转换成json格式。
response = requests.post(url='url', headers=headers, data=json.dumps(data))
OK,就是这么简单,就可以发送json格式数据,进行接口测试等。
还有更方便简单的方法,请查看我的个人博文,最新更新后的文章:
《python 使用requests发送json格式数据》
在Python中的requests库中,使用post()方法发送POST请求,如果需要传递JSON格式的数据,则可以设置请求头Content-Type为"application/json",并将数据通过json参数传递。
在 Python 众多的 HTTP 客户端中,最有名的莫过于requests、aiohttp和httpx。
在不借助其他第三方库的情况下,requests只能发送同步请求;aiohttp只能发送异步请求;httpx既能发送同步请求,又能发送异步请求。
那么怎么选择呢
只发同步请求用requests,但可配合多线程变异步。
只发异步请求用aiohttp,但可以配合await变同步。
httpx可以发同步请求也可以异步,但是请求速度同步略差于requests,异步...
编程小白在接触Python爬虫或数据分析时,第一个碰到的可能就是request函数了。网上已经有很多大牛总结过使用方法(例如:Requests库详解1])。
其中,最常用的方法是requests.get(),参数为:
request.get(url,params=None,**kwargs)
参数含义:
url:获取html的网页的url
params:url中的额外的参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数
在这些参数中,params表示在URL的查询字符串中发送某种数据,
r = requests.get('http://httpbin.org/get',params=data)
print('************************************')
print(r)
print('返回码:'+str(r.status_code))
服务器之前经常出现发消息就会宕机,今天修改了部分之后,就用python实现了一个批量post数据测试。
直接上代码。url 是测试版,你看到这份代码的时候,应该已经不能用了,童鞋需要自己有可以测试的url哦。
(我的测试环境是,聊天测试,所以你会看到 有一个req_id、to_id,msg 三部分)
第一种办法
#!/user/post_test.py
#coding=utf8