最近尝试使用request来发送上传文件的post请求,网上找了很多直接post文件的例子,借鉴发现这个方法行不通,于是尝试了另外一种方式:通过第三方包requests_toolbelt讲文件转为数据流来发送请求,尝试成功。
第一类,单个文件,包含在消息体
# -*- coding: utf-8 -*- import requests #引入requests_toolbelt包,直接使用数据流来发送上传文件的post请求 from requests_toolbelt.multipart.encoder import MultipartEncoder url = "http://host/test/bTutorCircle/uploadFile" m=MultipartEncoder(fields = { "account":"qatest@chaozhi1v1.com", "metaTag":"TOPIC_IMAGE", 'file':('12.jpg',open('C:\\Users\\Desktop\\test_img\\12.jpg', 'rb'),'application/jpg') }) headers = { 'Accept-Encoding': "gzip, deflate", 'Content-Type': m.content_type, } response = requests.request("POST", url, data=m, headers=headers) print(response.text)
第二类,多个文件,参数复杂组合情况
# -*- coding: utf-8 -*- import requests #引入requests_toolbelt包,直接使用数据流来发送上传文件的post请求 from requests_toolbelt.multipart.encoder import MultipartEncoder url = "http://host/test/content/inserOrUpdate?token=11E5F02EC251CCBFDBAF0BEE3B23DF35" m=MultipartEncoder(fields = { "trainContent":str({"title":"tet","introduction":"<p>test</p>","videoLinkType":1,"videoUrl":"","videoDurationM":"2","videoDurationS":0,"videoDuration":120}), "ppt":('12.jpg',open('C:\\Users\\Desktop\\test_img\\12.jpg', 'rb'),'application/jpg'), 'cover':('12.jpg',open('C:\\Users\\Desktop\\test_img\\12.jpg', 'rb'),'application/jpg'), 'video':('12.jpg',open('C:\\Users\\Desktop\\test_img\\12.jpg', 'rb'),'application/jpg') }) headers = { 'Accept-Encoding': "gzip, deflate", 'Content-Type': m.content_type, } response = requests.request("POST", url, data=m, headers=headers) print(response.text)
附件文件支持多种文件,比如ppt,xls,jmx等等,把对应字符替换即可。
相关推荐
在Python中,我们可以使用`requests`库来构造并发送`request payload`类型的POST请求。以下是一段示例代码: ```python import requests import json # 定义请求的URL url = 'http://example.com/api' # 定义...
以下是C++中使用libcurl发送POST请求的示例,这里假设你已经有一个JSON文件(例如`data.json`),使用了jsoncpp库来读取和序列化JSON数据: ```cpp #include #include #include // 读取JSON文件并序列化为字符...
总的来说,这些文件涵盖了Python中进行HTTP GET和POST请求的基本方法,以及处理Cookie和数据加密的相关技术。学习和理解这些内容将有助于你更好地进行网络编程,与Web服务进行有效交互。通过分析和理解这些代码,你...
本文将深入探讨如何使用Python实现一个简单的HTTP服务器,支持GET和POST请求。通过理解这个过程,你可以更好地理解网络通信的基本原理,以及Python在网络编程中的应用。 首先,让我们了解HTTP(超文本传输协议)的...
2. 批量发送POST请求:文档介绍了如何在Python中实现批量发送POST请求的功能。在真实场景中,这种需求可能出现在需要自动化测试、数据采集、接口调用等多个场景。文档提供了Java和Python两种语言的实现代码,对初学...
Python使用grequests进行并发请求的过程包括以下几个重要知识点: 1. Python中的requests库:Python开发人员通常使用requests库来发送HTTP请求。requests库提供了一种简单易用的方法来处理HTTP/1.1协议,使用起来...
在本实例中,我们将深入探讨如何使用`requests`库在Python 3中发送POST请求以及处理返回的结果。 首先,导入必要的库: ```python import requests import json ``` 在发送POST请求时,我们通常需要设置请求头...
本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下。 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的...
python--playwright修改GET/POST请求参数,抓包修改数据,内含: 1、index.py主代码,演示完整的抓包修改数据demo 2、flaskServer.py服务端,用于返回传入的参数 运行顺序: 先运行:python flaskServer.py 然后再...
总结来说,MultipartPostHandler是Python中处理文件上传的一种实用工具,它利用`urllib3`库的功能来构造和发送多部分/表单数据的POST请求。理解和熟练使用这个工具,可以帮助开发者更高效地与服务器进行文件交互,...
你可以使用`urlopen()`函数发送GET和POST请求,`Request()`类可以自定义请求头和数据。 - `urllib.parse`:这个模块用于URL的解析和编码,例如将URL分解成各个部分或者将查询参数编码为URL字符串。 2. `requests`...
这可以通过提供自定义的模板文件来实现,模板文件通常使用Jinja2这样的模板引擎编写,允许插入动态内容并控制文档的呈现方式。 **3. 使用步骤** 1. **安装request2doc**: 通过pip安装,命令行输入`pip install ...
首先,`request`库是Python中用于发送HTTP请求的标准库,它支持GET、POST等多种HTTP方法,同时提供了丰富的功能,如自动处理重定向、cookies、超时、验证等。在Python项目中,特别是涉及到网络请求的部分,`request`...
本文实例讲述了python使用urllib2提交http post请求的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2....
- 使用Python3的pandas库可以方便地读取和操作Excel文件,将数据加载到程序中。 3. **requests库**: - requests库是Python3中用于HTTP请求的库,它简化了发送GET、POST等HTTP请求的过程。在接口测试中,我们可以...
通过上述介绍,可以看出,使用Python3和requests库进行post请求是非常简单且强大的。它可以帮助开发者在开发测试过程中快速模拟各种HTTP请求,并验证程序的正确性。同时,它也为自动化测试提供了一种有效手段。掌握...
这篇文档将详细解释如何在Python中实现一个可配置的多线程异步POST请求功能,包括设置持续运行时间、线程数量以及请求间隔。 首先,我们要了解Python中的`http.client`模块,它是用于HTTP客户端操作的标准库,例如...
post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。 在Python代码请求,如下: class HttpHelper(): def __...
总的来说,使用Python3、unittest、requests和ddt进行接口测试,可以帮助我们构建出结构清晰、可维护性高的测试代码,确保接口的稳定性和正确性。通过数据驱动,我们可以方便地管理大量测试数据,提高测试覆盖率,...