Requests 库的基本用法
1 基本发送GET请求
import requests |
2 发送GET带参数,对变量params传入字典类型即可
import requests |
2.1 params 同时支持传入列表,达到一个变量赋两个值的效果
payload = {'key1': 'value1', 'key2': ['value2', 'value3']} |
3 发送Post请求,使用data参数传输数据
3.1 直接传输字典类型到data参数,会自动编码为表单形式发送
import requests |
3.2 通过json参数传递json数据到服务器,Requests库会自动编码,这是新特性,如果还是依靠data参数传递json数据,则需要使用json模块进行数据编码再传递给data参数,复杂了一点,不推荐了吧
url = 'https://api.github.com/some/endpoint' |
4 Request库发送get或者post请求后会得到一个response对象,这个对象包含了很多有用的属性
import requests |
5 Session机制:requests库如何保持session,详细参考下面的官方代码示例
s = requests.Session() # 生成一个session对象 |
不过需要注意,就算使用了会话,方法级别的参数也不会被跨请求保持。下面的例子只会和第一个请求发送 cookie ,而非第二个:
s = requests.Session() |
6 会话也可用来为请求方法提供缺省数据。这是通过为会话对象的属性提供数据来实现的:
s = requests.Session() |
7 编码问题
当你收到一个响应时,Requests 会猜测响应的编码方式,用于在你调用 Response.text 方法时对响应进行解码。Requests 首先在 HTTP 头部检测是否存在指定的编码方式,如果不存在,则会使用 charade 来尝试猜测编码方式。
8 认证问题
Ref :http://requests-oauthlib.readthedocs.io/en/latest/oauth2_workflow.html#introduction