请求数据示例:

------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 上传文件操作的更多相关文章

  1. 用Python的requests库作接口测试——上传文件

    POST一个多部分编码(Multipart-Encoded)的文件 Requests使得上传多部分编码文件变得很简单: >>> url = 'http://httpbin.org/p ...

  2. 前端 - jquery方式 / iframe +form 方式 上传文件

    环境与上一章一样 jquery 方式上传文件: HTML代码 {#html代码开始#} <input type="file" id="img" > ...

  3. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  4. Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法

    记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...

  5. python通过http(multipart/form-data)上传文件的方法

    之前写过一篇博客,说的如何python如何通过http下载文件,今天写一篇博客来介绍如下,python如何通过request库实现上传文件 这里主要是解决multipart/form-data这种格式 ...

  6. django Form组件 上传文件

    上传文件 注意:FORM表单提交文件要有一个参数enctype="multipart/form-data" 普通上传: urls: url(r'^f1/',views.f1), u ...

  7. selenium python (十四)上传文件的处理

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #上传过程一般要打开一个系统的windows窗口,从窗口选择本地文件添加 ...

  8. form 为什么上传文件enctype现场

    FORM要素enctype属性指定表单数据server当提交所使用的编码类型,默认默认值它是"application/x-www-form-urlencoded". 这样的编码方式 ...

  9. 2. SpringMVC 上传文件操作

    1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...

随机推荐

  1. 题解 [ZJOI2010]基站选址

    题解 [ZJOI2010]基站选址 题面 解析 首先考虑一个暴力的DP, 设\(f[i][k]\)表示第\(k\)个基站设在第\(i\)个村庄,且不考虑后面的村庄的最小费用. 那么有\(f[i][k] ...

  2. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 1) 963B 964D B Destruction of a Tree

    题 OvO http://codeforces.com/contest/963/problem/B CF 963B 964D 解 对于题目要求,显然一开始的树,要求度数为偶数的节点个数为奇数个,通过奇 ...

  3. 关于class

    1.使用#include分离函数的定义与实现 c语言可以在xxx.h中定义函数,然后在xxx.cpp中实现函数: 在需要用到这些函数时,只要用#include引入xxx.h即可,这样就不用将所有代码全 ...

  4. Java 相同类型强制转换异常

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u010750497/article/det ...

  5. 【题解】士兵训练-C++

    题目DescriptionN个士兵排成一队进行军事训练,每个士兵的等级用1…K范围内的数来表示,长官每隔1小时就随便说出M个等级a1,a2…am(1≤ai≤K,M个等级中允许有重复),如果这M个等级组 ...

  6. JSON格式数据

    1. 基础知识 1. 什么是JSON格式? JSON格式是现在网站数据交互的标准数据格式,写入标准. 取代原来的XML:符合JS原生语法,可以被直接解析,不需要额外的解析文件. 书写简单,一目了然 2 ...

  7. Oracle 数据库SQL审计

    在我们日常的工作中,一些安全性的要求高的数据库需要增加审计操作,哪个用户什么时间做了什么操作. 1.打开数据库的审计 alter system set audit_sys_operations=TRU ...

  8. bzoj4400

    /* * 此题同bzoj2725 * 增加了枚举边的操作 */ #include <bits/stdc++.h> ;// oo = 999999999; #define LL long l ...

  9. WEB测试重点及视频教程

    WEB测试重点如下: 1.WEB测试基础-2.理解网络协议-3.HTTP协议详解-4.WEB前段分析-5WEB安全性测试-6.WEB兼容性及可用性测试. 1.通常需要承受长时间的大量操作,因此web项 ...

  10. Jmeter linux 运行

    一.在Linux服务器先安装sdk 1.先从客户端下载jdk1.8.0_144.tar.gz,再上传到服务器 2.解压:tar -xzf jdk1.8.0_144.tar.gz,生成文件夹 jdk1. ...