最近在实习的时候需要从elasticsearch上拉取日志数据进行统计分析。发送请求的方式为post, 请求的body以payload方式编码。一般情况下,payload是一个json对象,我们只需要调用response = requests.post(url='your url', data=json.dumps(payload), headers=header)即可,然而我的情况有点特殊,payload不是一个json对象,而是两个,类似于这样:
{"index":"***","ignore_unavailable":true,"timeout":30000,...}
{"version": true, "size": 10000, "sort": ...}
在用python发送请求之前,我事先使用curl和postman发送过请求能够成功得到返回,但是request body这里必须使用binary file,因为payload是保存在一个json文件里面。
但是由于payload是两个json对象,因此在python中也只能使用load file的方式来上传request body,但是当我这样做的时候:
#在脚本内部对payload内容进行修改并写入文件
payload = line1+js.dumps(payloadObject)
with open(filepath,