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 ...
随机推荐
- 彻底搞清楚setState
setState最常见的问题是,是异步的还是同步的? setState在React.Component中的函数,是同步函数.但是我们调用的时候,不同的传参和不同的调用位置都会导致不同的结果. 从页面看 ...
- leetcode解题报告(3):Search in Rotated Sorted Array
描述 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 m ...
- 数据结构实验之二叉树二:遍历二叉树 SDUT 3341
#include <bits/stdc++.h> using namespace std; struct Tree { char data; struct Tree *right; str ...
- 字典-Python基础前传(9)
(一)Python中为什么要有字典 jacky说科学存在的逻辑只有两个: 1.解释问题 2.解决问题 我们明白了科学的逻辑,我们理解任何的知识和技能,都是很简单的 之前jacky跟大家说list因为太 ...
- 元祖(tuple)
元祖和列表几乎是一样的: 列表是可以进行修改的,它可以填加一个元素,也可以移除一个元素,但元祖是不能修改的 如果我们以后想导一个集合,这个集合以后不允许修改,我们用元祖:如何我们想让别人进行修改,我们 ...
- MySQL数据分析-(3)MySQL软件的安装(Windows版)
(一)MySQL下载 进入https://www.mysql.com/网页,找到DOWNLOADS然后点击进入页面,在页面中,我们选择社区版Community 点击,选择MySQL Community ...
- 七、find 文件查找
在文件系统上查找符合条件的文件 locate :依赖于事先构建的索引,索引的构建是在系统较为空闲时自动进行(周期性任务) 手动更新数据库(updatedb) 非实时查找 模糊查找 索引构建过程需要遍历 ...
- UVALive 4394 String painter ——(区间DP)
其实这个dp过程有点似懂非懂...代码如下: #include <stdio.h> #include <algorithm> #include <string.h> ...
- strom部署问题
1.storm 引用的 kafka和线上的kafka版本不一致 2.bolt的prepare初始化elasticsearch连接慢,导致第一次处理数据是总是有问题storm调用prepare方法是异步 ...
- Redis使用Docker镜像安装
详细见本人以下文档: https://www.cnblogs.com/zyc-blogs/p/9621727.html