Python requests 模块快速上手

Shell/Python   requests  

参考文档

模块安装

  • pip install request

快速上手,首先要 import requests

  • 发送无参数的get请求
s_ipv4_api = 'http://myops.imdst.com/api/public_ipv4'  
r = requests.get(s_ipv4_api)  
print r.text  
  • 发送带参数的get请求
test_url = "http://myops.imdst.com/api/mytest"  
test_data = { "name" : "leoiceo" }  
r = requests.get(test_url,params=test_data)  
print r.text  
  • 发送post请求,通过data参数来传递
test_url = "http://myops.imdst.com/api/mytest"  
test_data = { "name" : "leoiceo" }  
r = requests.post(test_url,data=test_data)  
print r.text  
  • data不光可以接受字典类型的数据,还可以接受json格式
test_url = "http://myops.imdst.com/api/mytest"  
test_data = { "name" : "leoiceo" }  
r = requests.post(test_url,data=json.dumps(test_data))  
print r.text  
  • 发送文件的post类型,这个相当于向网站上传一张图片,文档等操作,这时要使用files参数
test_url = "http://myops.imdst.com/api/test_upload"  
test_files = {'filename': open('a.py', 'rb')}  
r = requests.post(test_url, files=test_files)  
print r.text  
  • 定制headers,使用headers参数来传递,服务端接收后会自动加上HTTP_并转换为大写,-转换为_
test_url = "http://myops.imdst.com/api/mytest"  
payload = {'name': 'leoiceo'}  
headers = {'content-type': 'application/json'}  
r = requests.post(test_url , data=json.dumps(payload), headers=headers)  

响应内容

  • 响应状态码
    print r.status_code
  • 响应头
print r.headers  
print r.headers['Server']  
print r.headers.get('Server')  
  • 获取响应中的cookies
r = requests.get('http://www.baidu.com')  
r.cookies['BAIDUID']  
  • 使用timeout参数设置超时时间
requests.get('http://github.com', timeout=1)