`

python3使用request来post文件请求

阅读更多

最近尝试使用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等等,把对应字符替换即可。

0
0
分享到:
评论

相关推荐

    python爬虫实现POST request payload形式的请求

    在Python中,我们可以使用`requests`库来构造并发送`request payload`类型的POST请求。以下是一段示例代码: ```python import requests import json # 定义请求的URL url = 'http://example.com/api' # 定义...

    libcurl往python简单服务器发送post请求json文件

    以下是C++中使用libcurl发送POST请求的示例,这里假设你已经有一个JSON文件(例如`data.json`),使用了jsoncpp库来读取和序列化JSON数据: ```cpp #include #include #include // 读取JSON文件并序列化为字符...

    python做get和post请求

    总的来说,这些文件涵盖了Python中进行HTTP GET和POST请求的基本方法,以及处理Cookie和数据加密的相关技术。学习和理解这些内容将有助于你更好地进行网络编程,与Web服务进行有效交互。通过分析和理解这些代码,你...

    Python实现简单的HTTP服务器(GET/POST)

    本文将深入探讨如何使用Python实现一个简单的HTTP服务器,支持GET和POST请求。通过理解这个过程,你可以更好地理解网络通信的基本原理,以及Python在网络编程中的应用。 首先,让我们了解HTTP(超文本传输协议)的...

    Python批量发送post请求的实现代码

    2. 批量发送POST请求:文档介绍了如何在Python中实现批量发送POST请求的功能。在真实场景中,这种需求可能出现在需要自动化测试、数据采集、接口调用等多个场景。文档提供了Java和Python两种语言的实现代码,对初学...

    Python使用grequests(gevent+requests)并发发送请求过程解析

    Python使用grequests进行并发请求的过程包括以下几个重要知识点: 1. Python中的requests库:Python开发人员通常使用requests库来发送HTTP请求。requests库提供了一种简单易用的方法来处理HTTP/1.1协议,使用起来...

    python3发送request请求及查看返回结果实例

    在本实例中,我们将深入探讨如何使用`requests`库在Python 3中发送POST请求以及处理返回的结果。 首先,导入必要的库: ```python import requests import json ``` 在发送POST请求时,我们通常需要设置请求头...

    Python使用requests发送POST请求实例代码

    本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下。 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的...

    python-playwright修改GET/POST请求参数,抓包修改数据

    python--playwright修改GET/POST请求参数,抓包修改数据,内含: 1、index.py主代码,演示完整的抓包修改数据demo 2、flaskServer.py服务端,用于返回传入的参数 运行顺序: 先运行:python flaskServer.py 然后再...

    MultipartPostHandler python 表单文件post

    总结来说,MultipartPostHandler是Python中处理文件上传的一种实用工具,它利用`urllib3`库的功能来构造和发送多部分/表单数据的POST请求。理解和熟练使用这个工具,可以帮助开发者更高效地与服务器进行文件交互,...

    Python 访问http, https请求

    你可以使用`urlopen()`函数发送GET和POST请求,`Request()`类可以自定义请求头和数据。 - `urllib.parse`:这个模块用于URL的解析和编码,例如将URL分解成各个部分或者将查询参数编码为URL字符串。 2. `requests`...

    Python-request2doc自动根据发送的请求生成API说明文档

    这可以通过提供自定义的模板文件来实现,模板文件通常使用Jinja2这样的模板引擎编写,允许插入动态内容并控制文档的呈现方式。 **3. 使用步骤** 1. **安装request2doc**: 通过pip安装,命令行输入`pip install ...

    python3.6.3 离线安装 request 需要的 lib

    首先,`request`库是Python中用于发送HTTP请求的标准库,它支持GET、POST等多种HTTP方法,同时提供了丰富的功能,如自动处理重定向、cookies、超时、验证等。在Python项目中,特别是涉及到网络请求的部分,`request`...

    python使用urllib2提交http post请求的方法

    本文实例讲述了python使用urllib2提交http post请求的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2....

    python3 + excel + request 接口测试框架学习

    - 使用Python3的pandas库可以方便地读取和操作Excel文件,将数据加载到程序中。 3. **requests库**: - requests库是Python3中用于HTTP请求的库,它简化了发送GET、POST等HTTP请求的过程。在接口测试中,我们可以...

    Python3 利用requests 库进行post携带账号密码请求数据的方法

    通过上述介绍,可以看出,使用Python3和requests库进行post请求是非常简单且强大的。它可以帮助开发者在开发测试过程中快速模拟各种HTTP请求,并验证程序的正确性。同时,它也为自动化测试提供了一种有效手段。掌握...

    Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

    这篇文档将详细解释如何在Python中实现一个可配置的多线程异步POST请求功能,包括设置持续运行时间、线程数量以及请求间隔。 首先,我们要了解Python中的`http.client`模块,它是用于HTTP客户端操作的标准库,例如...

    浅谈python3发送post请求参数为空的情况

    post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。 在Python代码请求,如下: class HttpHelper(): def __...

    python3+unittest+request+ddt接口测试

    总的来说,使用Python3、unittest、requests和ddt进行接口测试,可以帮助我们构建出结构清晰、可维护性高的测试代码,确保接口的稳定性和正确性。通过数据驱动,我们可以方便地管理大量测试数据,提高测试覆盖率,...

Global site tag (gtag.js) - Google Analytics