python处理multipart/form-data的请求方法

yipeiwu_com6年前Python基础

方法1:

import requests
url = "http://www.xxxx.net/login"

#参数拼凑,附件上传格式如picurl参数,其他表单参数值拼成tuple格式:
2-tuples (filename, fileobj), 
3-tuples (filename, fileobj, contentype),
4-tuples (filename, fileobj, contentype, custom_headers)

files = {"username": (None, "billy"), "password": (None, "abcd1234"),
  'picUrl': ('pic.png', open('E:\\download\\pic.png', 'rb'), 'image/png')}

#如需headers,不需要赋值Content-Type,不然可能会报错
res = requests.post(url, files=files)
print res.request.body
print res.request.headers

方法2:

安装requests_toolbelt

pip install requests-toolbelt

实现代码

a.发送文件中的数据

from requests_toolbelt import MultipartEncoder
import requests

m = MultipartEncoder(
 fields={'field0': 'value', 'field1': 'value',
   'field2': ('filename', open('file.py', 'rb'), 'text/plain')},
 )
r = requests.post('http://httpbin.org/post', data=m,
     headers={'Content-Type': m.content_type})

b.不需要文件

from requests_toolbelt import MultipartEncoder
import requests
m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'})
r = requests.post('http://httpbin.org/post', data=m,
     headers={'Content-Type': m.content_type})

以上这篇python处理multipart/form-data的请求方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用 python pyautogui实现鼠标键盘控制功能

pyautogui是一个可以控制鼠标和键盘的python库,类似的还有pywin32。 pyautogui的安装 pip3 install python3-xlib 依赖库 sudo a...

一篇文章弄懂Python中的可迭代对象、迭代器和生成器

一篇文章弄懂Python中的可迭代对象、迭代器和生成器

我们都知道,序列可以迭代。但是,你知道为什么吗? 本文来探讨一下迭代背后的原理。 序列可以迭代的原因:iter 函数。解释器需要迭代对象 x 时,会自动调用 iter(x)。内置的 it...

Python3.5集合及其常见运算实例详解

本文实例讲述了Python3.5集合及其常见运算。分享给大家供大家参考,具体如下: 1、集合的定义:集合是一个无序的、无重复的数据的数据组合。 2、集合的特征: (1)去除重复元素:将一...

Django使用uwsgi部署时的配置以及django日志文件的处理方法

首先保证你有一个可运行的django工程 然后在虚拟环境里面安装好uwsgi pip install uwsgi 配置nginx的服务如下 server {...

python opencv调用笔记本摄像头

python opencv调用笔记本摄像头

通过查看书籍,自己总结了一下,怎样用python代码实现调用笔记本摄像头的功能。 这主要是通过opencv中cv2模块来实现这个功能。其中是调用cv2中的函数,比如:imread()函数...