1、带证书上传文件

filename = '/tmp/test.cert'
hash_v = 'assumethisisahash'

#这是一种流式上传的方式
with open(filename, 'rb') as f:
....requests.post(link, data={'hash': hash_v}, files={'filename':f}, verify='/tmp/test.cert')

2、最简单的流式上传

with open('massive-body') as f:
requests.post('http://some.url/streamed', data=f)

3、块编码请求

def gen():
yield 'hi'
yield 'there' requests.post('http://some.url/chunked', data=gen())

其他内容可参见:http://www.ziliao1.com/Article/Show/05534046411C9B8866742DE312F126CB.html

4、复杂的流式上传,为了兼容中文文件,还对文件名称中途做了一个replace替换

def get_content_code(url, res_path, encoded_name, file_name):
with open(res_path, 'rb') as f_:
m = MultipartEncoder(
fields={'file': (encoded_name, f_,
'application/octet-stream')}
)
utils.logger.info('body:{},encoded_name:{},file_name:{}'.format(m,encoded_name,file_name)) decoded_m = m.to_string()
decoded_m=decoded_m.replace(encoded_name, file_name)
utils.logger.info('decoded_m:{}'.format(decoded_m))
utils.logger.info('url:{}'.format(url))
response = requests.post(url,
data=decoded_m,
headers={'Content-Type': m.content_type,
'charset': 'UTF-8'})
utils.logger.info('content: {}'.format(response.content)) try:
content = json.loads(response.content)
except ValueError:
content = response.content
return content, response.status_code

  

python各种post上传文件的更多相关文章

  1. Python基于Python实现批量上传文件或目录到不同的Linux服务器

    基于Python实现批量上传文件或目录到不同的Linux服务器   by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/rootpath_fo ...

  2. Python+Selenium学习--上传文件

    场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡在 ...

  3. selenium+python自动化测试,上传文件怎样实现

    其实上传图片操作与输入框的输入是一样的,一种是在输入框中输入字符信息,一种是在输入文件格式的信息,下面是用代码实现上传文件, from selenium import webdriverfrom ti ...

  4. python连接服务器上传文件,后台执行命令

    上传文件 import os import paramikoimport logging from django.core.cache import cache from YunTai import ...

  5. Ajax+Python flask实现上传文件功能

    HTML: <div > <input type="file" name="FileUpload" id="FileUpload&q ...

  6. python向ftp上传文件,解决中文问题

    # coding: UTF-8 import os import sys import salt.client import salt.config import time from ftplib i ...

  7. 【python】django上传文件

    参考:https://blog.csdn.net/zahuopuboss/article/details/54891917 参考:https://blog.csdn.net/zzg_550413470 ...

  8. python控制浏览器上传文件

    自动化爬虫方法和库很多,难点大多数在登录.可以大致分为:普通验证码,扫码登录,QQ一键登录,拖动验证,无痕验证,人工识别(比如12306登录) 万能大法可以破解一切以上需求,自动控制浏览器行为 参考文 ...

  9. python request post上传文件额外注意点

    通用用法 但上图的字段名,类型需要根据不同接口填写,如某服务接口: 因而对应的上传代码如下: # 输出参数:请求响应报文import requestsrequest_url = 'https://XX ...

随机推荐

  1. coursera吴恩达 机器学习编程作业原文件 及我的作业

    保存在github上供广大网友下载:点击 8个zip,原文件,没有任何改动. 另外,不定期上传我自己关于这门课的学习过程笔记和心得,有兴趣的盆友可以点击这里查看.

  2. 拆分string 用空格 逗号

    string that have both comma and space struct tokens: std::ctype<char>{ tokens(): std::ctype< ...

  3. oh-my-zsh的安装与基本配置

    1. 准备工作 安装需要用到:wget curl git zsh 官网:http://ohmyz.sh/ GitHub主页:https://github.com/robbyrussell/oh-my- ...

  4. (HDU 1542) Atlantis 矩形面积并——扫描线

    n个矩形,可以重叠,求面积并. n<=100: 暴力模拟扫描线.模拟赛大水题.(n^2) 甚至网上一种“分块”:分成n^2块,每一块看是否属于一个矩形. 甚至这个题就可以这么做. n<=1 ...

  5. A1084. Broken Keyboard

    On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters ...

  6. 【POJ1961】最短周期串/最大周期 kmp

    引理:\(s[1,i]\) 具有长度为 \(len\) 的循环节的充要条件是:\(len\ |\ i,s[1,i-len]=s[len+1,i]\). 代码如下 #include <cstdio ...

  7. 使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置

    最近项目需要,稍微研究一下html5获取当前地理位置的问题. 获取当前位置的经纬度很简单,一句代码就搞定 navigator.geolocation.getCurrentPosition(functi ...

  8. 五个免费UML建模工具

    UML工具很多是商用的,价格不菲:而免费的UML建模工具,功能完善的很少.以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错. 免费UML建模工具推荐:JUDE – community 如 ...

  9. 《Linux就该这么学》第二期视频

    Linux就该这么学--第二期学习笔记... ------------- 你的未来取决于你现在点点滴滴的努力 需要用到的一些工具: Vm11激活码 ---------- root在Linux系统中相当 ...

  10. iptables 代理转发配置

    增加命令 [root@pre /]# iptables -t nat -A PREROUTING -s 39.15.15.15/32 -d 221.11.8.200/32 -p tcp -m tcp ...