最近尝试使用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等等,把对应字符替换即可。
相关推荐
AJAX Post请求中常用的两种传参数的形式:form data 和 request payload 1.1.1. Form data get请求的时候,我们的参数直接反映在url里面,形式为key1=value1&key2=value2形式,比如: http://news.baidu.
用Python和TCP sockets手写了一个可以接收HEAD、GET和POST等request message的简单的 HTTP web服务器。
主要介绍了Python使用grequests并发发送请求过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下。 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的...
post的时候,将data字典形式的参数用json包转换成json格式。 response = requests.post(url=‘XXXX’, headers=headers, data=json.dumps(raw)) 返回信息 print(response.text) 返回响应头 prin
本文实例讲述了python使用urllib2提交http post请求的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2....
post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。 在Python代码请求,如下: class HttpHelper(): def __...
主要介绍了Python3模拟curl发送post请求操作,结合实例形式分析了Python3使用Request请求模拟curl发送post相关操作技巧,需要的朋友可以参考下
# 输出参数:请求响应报文 import requests request_url = 'https://XXXXX/file-upload' head = { # Content-Type: multipart/form-data; boundary=alamofire.boundary.3c7024a080e6a27f, #注意,此处不要写Content...
今天小编就为大家分享一篇Python3 利用requests 库进行post携带账号密码请求数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
简介 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须...multipart/form-data 一般使用来上传文件。 一、 以form表单发送post请求 Reqeusts支持以form表单形式发送post请求,只需要将请求的参
一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要是因为容易混淆 POST提交的方式 。今天在微信交流群里,就有朋友遇到了这种问题,特地讲解一下。 在HTTP...
先来看看使用requests来发送post请求是多少好用,发送请求 Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。例如,你可以这样发送一个 HTTP POST 请求: >>>r = requests.post('...
我们都见识过requests库在静态网页的爬取上展现的威力,我们日常见得最多的为get和post请求,他们最大的区别在于安全性上: 1、GET是通过URL方式请求,可以直接看到,明文传输。 2、POST是通过请求header请求,可以...
如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。 表单提交中get和post方式的区别归纳如下几点: get是从服务器上获取数据,post是向服务器传送数据。 对于表单的提交方式,在服务器端只能...
selenium自定义封装支持类似httpclient 的post提交方式,并获取返回值,对于获取异步请求中返回的json对象值很有用。
主要介绍了Python 使用requests模块发送GET和POST请求的实现代码,需要的朋友可以参考下
JAVA实现Python requests模块(JAVA实现Http请求)-附件资源
如果想要使用Python编写一个请求百度翻译API的程序,可以按照以下步骤进行操作: 导入所需的库: 使用requests库来发送HTTP请求,获取API响应。 准备请求参数: 根据百度翻译API的文档,准备请求参数,包括待翻译...