python requests 库请求带有文件参数的接口实例

有些接口参数是一个文件格式,比如fiddler 抓包参数如下显示


这个接口的 form-data fiddler 显示的和不带文件参数的接口有明显区别,显示的不是简单的键值对,所以我们也不能只通过 data给接口传参,需要再value为的参数通过 files传参

data = {
"CSRFName": “CSRFName”,
"CSRFToken": “CSRFToken”,
"importType": "XML",
"hit_criteria": "name",
"action_on_duplicated_name": "generate_new",
"useRecursion": "0",
"bIntoProject": "0",
"containerID": "4956",
"MAX_FILE_SIZE": "409600",
"UploadFile": "上传文件"
}
files = {"uploadedFile": open(file_name, "rb")}
r = session.post(url=url, data=data, files=files)

这样我们通过requests 再次请求接口,通过fiddler 抓包,验证一下requests的请求是不是和原始的请求一致。

fiddler 显示的form data和原始请求一致,说明我们请求参数是正确的。

以上这篇python requests 库请求带有文件参数的接口实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-01-02

如下所示: # coding = utf-8 import requests import json host = "http://47.XX.XX.XX:30000" endpoint=r"/api/v1/carXX/addCarXX" url = ''.join([host,endpoint]) headers = \ { "X-Member-Id": "23832170000", "X-Region"

1.Requests模块说明 Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 在Python的世界里,事情不应该这么麻烦. Requests 使用的是 urllib3,因此继承了它的所有特性.Request

如下所示: import json # 使用三引号将浏览器复制出来的requests headers参数赋值给一个变量 headers = """ Host: zhan.qq.com Proxy-Connection: keep-alive Content-Length: 799432 Pragma: no-cache Cache-Control: no-cache Origin: http://zhan.qq.com User-Agent: Mozilla/5.0 (Win

post, put请求的参数有两种形式 一种是把参数拼接在url中 对应postman 第二种是把参数放在body中 对应postman 在Python requests 库中 一般在的资料都会介绍 post,put请求的参数 用data 这种情况下参数会放在body中 但是有些接口参数通过body传入获取不到只能获取到URL中的参数 我们就需要用到 类似于get请求中的 params 传入参数 requests.post(url=url, params=data, verify=False,

今天使用Pycharm来抓取网页图片时候,要导入requests模块,但是在pycharm中import requests 时候报错. 原因: python中还没有安装requests库 解决办法: 1.先找到自己python安装目录下的pip 2.在自己的电脑里打开cmd窗口. 先点击开始栏,在搜索栏输入cmd,按Enter,打打开cmd窗口.在cmd里将目录切换到你的pip所在路径. 比如我的在C:\Python27\Scripts这个目录下,先切换到d盘,再进入这个路径. 具体命令:cd.

最近学习Python接口测试,对于接口测试完全小白.大概一周的学习成果进行总结. 1.接口测试: 目前涉及到的只是对简单单一的接口进行参数传递,得到返回自. 2.关于各种概念: 2.1 http请求包含post方法.get方法.通过json串或XML传递,但后者未做研究 2.2 GET: 浏览器告诉服务器,只获取页面信息,并发送给我. 2.3 POST:浏览器告诉服务器想法不一些信息到某个网址,服务器需确保数据被存储且只存储一次. 2.4 HEAD:浏览器告诉服务器,给我消息头,像get那样被接

本章所讲内容: 1.钉钉报警设置 2.钉钉报警脚本运行. 1.钉钉报警设置 钉钉,关于webhook的报警需求,钉钉报警也是我们在公司中常见的报警系统,在这里主要是结合zabbix二次开发使用,来达到完美报警的使用.

背景 中秋的时候,一个朋友给我发了一封邮件,说他在爬链家的时候,发现网页返回的代码都是乱码,让我帮他参谋参谋(中秋加班,真是敬业= =!),其实这个问题我很早就遇到过,之前在爬小说的时候稍微看了一下,不过没当回事,其实这个问题就是对编码的理解不到位导致的. 问题 很普通的一个爬虫代码,代码是这样的: # ecoding=utf-8 import re import requests import sys reload(sys) sys.setdefaultencoding('utf8') url

介绍 今天有个不正经的需求,就是要快速做一个restful api的性能测试,要求测试在海量作业数据的情况下客户端分页获取所有作业的性能.因为只是一个小的的测试工作,所以就想到了Bottle框架作为Web服务器,这里就简单说说怎样使用Bottle框架. 安装 pip install bottle 启动服务 运行下面的python脚本即可启动一个Web服务. from bottle import route, run, request @route('/hello') def hello(): r

CPU-bound(计算密集型) 和I/O bound(I/O密集型) 计算密集型任务(CPU-bound) 的特点是要进行大量的计算,占据着主要的任务,消耗CPU资源,一直处于满负荷状态.比如复杂的加减乘除.计算圆周率.对视频进行高清解码等等,全靠CPU的运算能力.这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数. 计算密集型任务由于主要消耗CPU资源,因

线程间通信方法 1. 通信方法 线程间使用全局变量进行通信     2. 共享资源争夺 共享资源:多个进程或者线程都可以操作的资源称为共享资源.对共享资源的操作代码段称为临界区. 影响 : 对共享资源的无序操作可能会带来数据的混乱,或者操作错误.此时往往需要同步互斥机制协调操作顺序.     3. 同步互斥机制 同步 : 同步是一种协作关系,为完成操作,多进程或者线程间形成一种协调,按照必要的步骤有序执行操作.两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行.比如 A 任务的

如果你学过操作系统,那么对于锁应该不陌生.锁的含义是线程锁,可以用来指定某一个逻辑或者是资源同一时刻只能有一个线程访问.这个很好理解,就好像是有一个房间被一把锁锁住了,只有拿到钥匙的人才能进入.每一个人从房间门口拿到钥匙进入房间,出房间的时候会把钥匙再放回到门口.这样下一个到门口的人就可以拿到钥匙了.这里的房间就是某一个资源或者是一段逻辑,而拿取钥匙的人其实指的是一个线程. 加锁的原因 我们明白了锁的原理,不禁有了一个问题,我们为什么需要锁呢,它在哪些场景当中会用到呢? 其实它的使用场景非常广,

在下是个编程爱好者,最近将魔爪伸向了Python编程.....遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy). 首先说一下deepcopy,所谓的深度复制,在这里我理解的是完全复制然后变成一个新的对象,复制的对象和被复制的对象没有任何关系,彼此之间无论怎么改变都相互不影响. 然后说一下copy,在这里我分为两类来说,一种是字典数据类型的copy函数,一种是copy包的copy函数. 一.字典数据类型的copy函数