`

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形式的请求

    AJAX Post请求中常用的两种传参数的形式:form data 和 request payload 1.1.1. Form data get请求的时候,我们的参数直接反映在url里面,形式为key1=value1&key2=value2形式,比如: http://news.baidu.

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

    用Python和TCP sockets手写了一个可以接收HEAD、GET和POST等request message的简单的 HTTP web服务器。

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

    主要介绍了Python使用grequests并发发送请求过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

    post的时候,将data字典形式的参数用json包转换成json格式。 response = requests.post(url=‘XXXX’, headers=headers, data=json.dumps(raw)) 返回信息 print(response.text) 返回响应头 prin

    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发送post请求参数为空的情况

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

    Python3模拟curl发送post请求操作示例

    主要介绍了Python3模拟curl发送post请求操作,结合实例形式分析了Python3使用Request请求模拟curl发送post相关操作技巧,需要的朋友可以参考下

    Python request post上传文件常见要点

    # 输出参数:请求响应报文 import requests request_url = 'https://XXXXX/file-upload' head = { # Content-Type: multipart/form-data; boundary=alamofire.boundary.3c7024a080e6a27f, #注意,此处不要写Content...

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

    今天小编就为大家分享一篇Python3 利用requests 库进行post携带账号密码请求数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python爬虫使用requests发送post请求示例详解

    简介 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须...multipart/form-data 一般使用来上传文件。 一、 以form表单发送post请求 Reqeusts支持以form表单形式发送post请求,只需要将请求的参

    Python requests发送post请求的一些疑点

    一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要是因为容易混淆 POST提交的方式 。今天在微信交流群里,就有朋友遇到了这种问题,特地讲解一下。 在HTTP...

    python使用scrapy发送post请求的坑

    先来看看使用requests来发送post请求是多少好用,发送请求 Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。例如,你可以这样发送一个 HTTP POST 请求: &gt;&gt;&gt;r = requests.post('...

    python利用requests库模拟post请求时json的使用教程

    我们都见识过requests库在静态网页的爬取上展现的威力,我们日常见得最多的为get和post请求,他们最大的区别在于安全性上: 1、GET是通过URL方式请求,可以直接看到,明文传输。 2、POST是通过请求header请求,可以...

    python中get和post有什么区别

    如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。 表单提交中get和post方式的区别归纳如下几点: get是从服务器上获取数据,post是向服务器传送数据。 对于表单的提交方式,在服务器端只能...

    如何用selenium封装post参数提交示例

    selenium自定义封装支持类似httpclient 的post提交方式,并获取返回值,对于获取异步请求中返回的json对象值很有用。

    Python 使用requests模块发送GET和POST请求的实现代码

    主要介绍了Python 使用requests模块发送GET和POST请求的实现代码,需要的朋友可以参考下

    JAVA实现Python requests模块(JAVA实现Http请求)-附件资源

    JAVA实现Python requests模块(JAVA实现Http请求)-附件资源

    python 中英文翻译api request(百度)

    如果想要使用Python编写一个请求百度翻译API的程序,可以按照以下步骤进行操作: 导入所需的库: 使用requests库来发送HTTP请求,获取API响应。 准备请求参数: 根据百度翻译API的文档,准备请求参数,包括待翻译...

Global site tag (gtag.js) - Google Analytics