Python Requests库 form-data 上传文件操作
请求数据示例:
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="id"
9
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="name"
赵云
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="tel"
13212345678
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="school"
西南科技大学
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="major"
计算机
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="age"
30
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="img"; filename="demo.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryKLoWgrA4O40MayHM--
1.通过data参数和files参数发送请求
import requests
request_url = 'http://www.demo.com/studentInfo/saveNewInfo'
# 构造字典,键值对方式传参
request_data = {
'id': '9',
'name': '赵云',
'tel':'13212345678',
'school': '西南科技大学',
'major': '计算机',
'age': '30'
}
# 上传文件单独构造成以下形式
# 'img' 上传文件的键名
# 'demo' 上传到服务器的文件名,可以和上传的文件名不同
# open('D:/demo.jpg') 打开的文件对象,注意文件路径正确
# 'image/jpeg' Content-Type类型
request_file = {'img':(('demo',open('D:/demo.jpg')),'image/jpeg')}
requests.post(url=request_url, data=request_data, files=request_file) # url,data,files
2.仅通过files参数模拟文件发送请求
import requests
request_url = 'http://www.demo.com/studentInfo/saveNewInfo'
# 构造字典,键值对方式传参
# 不是文件的构造键值对,键值为一个元组形式,元组第0位为None,第1位为键值.
request_files = {
'id': (None, '9'),
'name': (None, '赵云'),
'tel':(None, '13212345678'),
'school': (None, '西南科技大学'),
'major': (None, '计算机'),
'age': (None, '30'),
'img':(('demo',open('D:/demo.jpg')),'image/jpeg')
# 'img':(None,'','image/jpeg') 不传文件的写法
}
requests.post(url=request_url, files=request_files) # url,files
Python Requests库 form-data 上传文件操作的更多相关文章
- 用Python的requests库作接口测试——上传文件
POST一个多部分编码(Multipart-Encoded)的文件 Requests使得上传多部分编码文件变得很简单: >>> url = 'http://httpbin.org/p ...
- 前端 - jquery方式 / iframe +form 方式 上传文件
环境与上一章一样 jquery 方式上传文件: HTML代码 {#html代码开始#} <input type="file" id="img" > ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法
记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...
- python通过http(multipart/form-data)上传文件的方法
之前写过一篇博客,说的如何python如何通过http下载文件,今天写一篇博客来介绍如下,python如何通过request库实现上传文件 这里主要是解决multipart/form-data这种格式 ...
- django Form组件 上传文件
上传文件 注意:FORM表单提交文件要有一个参数enctype="multipart/form-data" 普通上传: urls: url(r'^f1/',views.f1), u ...
- selenium python (十四)上传文件的处理
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #上传过程一般要打开一个系统的windows窗口,从窗口选择本地文件添加 ...
- form 为什么上传文件enctype现场
FORM要素enctype属性指定表单数据server当提交所使用的编码类型,默认默认值它是"application/x-www-form-urlencoded". 这样的编码方式 ...
- 2. SpringMVC 上传文件操作
1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...
随机推荐
- MySQL5.7 (审计)通过init_connect + binlog 实现MySQL审计功能
转载自:https://blog.51cto.com/13941177/2173620 一.简介 1.概述 mysql本身已经提供了详细的sql执行记录–general log ,但是开启它有以下几个 ...
- Gym - 102307D Do Not Try This Problem
Do Not Try This Problem Gym - 102307D 题意:给个长度为len的字符串(len<=1e5),然后q次操作(q<=1e5),每次给出i,a,k,c,(i ...
- Java面向对象4(P~U)
P 3-1 Point类的构造函数 (SDUT 2670) import java.util.Arrays; import java.util.Scanner; public class Mai ...
- vue项目,前端导出excel
今天研究一下前端如何导出excel,边查边实践,边记录 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还涉及不少二进制的东西 file-saver:ES5新增了相关 ...
- Linux之基础命令
常用命令 查看ip地址的两种方式 ifconfig ip addr show Linux的两种ip地址: 127.0.0.1 本机回环地址 0.0.0.0 全网地址/绑定所有网卡/所有地址 Linux ...
- fluent中统计颗粒信息【转载】
转载自:http://mp.weixin.qq.com/s?__biz=MjM5MDkyMjA1Nw==&mid=502657725&idx=1&sn=120703a69e56 ...
- python网络爬虫(一):网络爬虫的定义
网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开 ...
- Qt for Android(一)Qt在Android手机上全屏显示
1.在程序的编译路径下找到AndroidManifest.xml文件,具体路径如下: 2.在pro文件中添加一句话: ANDROID_PACKAGE_SOURCE_DIR = $$PWD/Androi ...
- 生产环境缺陷来源VS 缺陷管理响应机制
生产环境缺陷主要来源于用户反馈.版本内遗留.内部反馈和监控后台报警,具体内容包含以下途径: 1.用户反馈: ① 前台电话方式 ② 意见反馈后台 ③ 第三方平台:如微博.App Store等渠道 ...
- Java 线程概述
1 进程与线程基本概念 1.1 进程:执行中的程序 每个进程都有独立的代码和数据空间(进程上下文),进程空间切换会有较大的开销,一个进程包含1-n个线程.进程是资源分配的最小单位. 1.2 线程:进程 ...