安装
$ pip install requests
使用
GET:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://github.com/timeline.json', params=payload)
POST
r = requests.post("http://httpbin.org/post", data=data)
其他方法:
r = requests.put("http://httpbin.org/put")
r = requests.delete("http://httpbin.org/delete")
r = requests.head("http://httpbin.org/get")
r = requests.options("http://httpbin.org/get")
响应
对于获取普通的 body,可以从 text 属性中获得:
import requests
r = requests.get('https://github.com/timeline.json')
r.text
u'[{"repository":{"open_issues":0,"url":"https://github.com/...
对于二进制数据,可以使用 r.content
, 对于 json 的话,可以直接使用 r.json()
,该方法会返回一个被解析的字典或列表。
无论是请求还是相应,用法比较符合直觉,更详细见文档: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
Session
虽然 http 是无状态的,但是请求往往是连续的,状态一般存储在 cookie 里。requests.Session 类便提供了一个 cookie 持续的请求方式,一般自定义 http client 都会继承自这个类。
用法:
>>> import requests
>>> s = requests.Session()
>>> s.get('http://httpbin.org/get')
<Response [200]>
# with
>>> with requests.Session() as s:
>>> s.get('http://httpbin.org/get')
<Response [200]>
更多的参数可以参考相关文档:Session 更多参数