python之_requests库学习_2(post请求参数传递)
来源:互联网 发布:faded软件下载 编辑:程序博客网 时间:2024/06/14 11:22
一、定制请求头
定义headers
,类型为dict
import requestsurl = 'https://api.douban.com/v2/book/search?q=小王子'headers={'user-agent': 'Mozilla/5.0'}r = requests.get(url,headers=headers)
注:Requests 不会基于定制 header 的具体情况改变自己的行为。只不过在最后的请求中,所有的 header 信息都会被传递进去,如下图的请求头信息按照需求都可以这样子传递
二、更加复杂的POST请求
在上一篇文章中可以传递带参数的get请求,只需要在url后添加一个params
参数即可,下面展示更加复杂的post请求
1、传递一些编码为表单形式的数据——非常像一个 HTML 表单。要实现这个,只需简单地传递一个字典给 data
参数。你的数据字典在发出请求时会自动编码为表单形式
import requestspayload={'key1':'value1','key2':'value2'} #参数为dict形式r=requests.post("http://httpbin.org/post",data=payload)print(r.url)print(r.text)>>http://httpbin.org/post #输出url>>{...... "form": { "key1": "value1", "key2": "value2" }, "headers": { "Accept": "*/*", ... ... }}
data参数为元组形式,可传递一个key值包含多个值的参数
import requestspayload=(('key1','value1'),('key1','value2')) #参数为元组r=requests.post("http://httpbin.org/post",data=payload)print(r.url)print(r.text)>>http://httpbin.org/post>>{ ... ... "form": { "key1": [ "value1", "value2" ] }, "headers": { "Accept": "*/*", ... ... }}
2、很多时候你想要发送的数据并非编码为表单形式的。如果你传递一个 string 而不是一个 dict
import requestsimport jsonpayload={'some':'data'}url = 'http://httpbin.org/post'r=requests.post(url,data=json.dumps(payload))
import requestspayload={'some':'data'}url = 'http://httpbin.org/post'r=requests.post(url,json=payload)
{ ... ... "json": { "some": "data" }, ... ...}
3、post一个多部分编码的文件
import requestsurl='http://httpbin.org/post'path = r'E:\history.txt'files={'file':open(path,'rb')}r = requests.post(url,files=files) #参数为一个文件print(r.url)print(r.text)>>http://httpbin.org/post>>{ ... ... "files": { "file": "data:application/octet-stream;base64,gANjY29sbGVjdGlvbnMKZGVxdWUKcQBdcQEoSyJLOEtNS0JLRmVLBYZxAlJxAy4=" }, ... ... }
可以显示的设置文件名、文件类型和请求头
import requestsurl='http://httpbin.org/post'path = r'E:\history.txt'files={'file':('report.xls',open(path,'rb'),'application/vnd.ms-excel', {'Expires': '0'})}r = requests.post(url,files=files)>> "files": { "file": "data:application/vnd.ms-excel;base64,gANjY29sbGVjdGlvbnMKZGVxdWUKcQBdcQEoSyJLOEtNS0JLRmVLBYZxAlJxAy4=" },
也可以发送作为文件来接收的字符串
阅读全文
0 0
- python之_requests库学习_2(post请求参数传递)
- python之_requests库学习_3(请求响应信息获取)
- python之_requests库学习_1(基础知识)
- python之_requests库学习_4(session会话)
- python之_requests库学习_5(超时与异常)
- 向Url发送post请求传递参数
- java post 请求参数传递,响应解析
- jquery post请求来实现参数传递
- React Native 中POST请求参数传递
- Java Post请求 传递Json参数
- android学习笔记之HTTP GET/POST传递参数
- Yaws(erlang web服务器框架) 学习记录之获取GET/POST请求参数
- python爬虫之post请求
- python GET POST 传递参数例子
- python http请求post参数,json解析
- Python的post请求josn格式参数
- Android: 网络编程之Post传递参数
- 用python发送post请求, post参数中多出‘\r\n’
- 张鑫旭大神的实例(鼠标hover按钮无中生有播放声音demo)
- Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度
- SpringCloud消息总线
- Hibernate的generator属性
- IDEA发布项目 导包出错
- python之_requests库学习_2(post请求参数传递)
- leetcode 28. Implement strStr()
- 解决HotClickView开启移动和缩放后热区与背景bitmap显示错位的问题
- 揭秘入围央采的锐捷大数据安全平台是什么东西?
- 实现图片沿水平和竖直方向翻转(旋转180度)
- pace.js网页自动加载进度条插件-好东西
- js中过滤输入框,和文本域中的特殊字符串。
- shell脚本中判断上一个命令是否执行成功
- 结构体和指针