做一个总结~以便以后参考
本文参考:​​​添加链接描述​

import requests

GET请求

eg:

r = requests.get('http://httpbin.org/get')
print(r.url)

python-requests的简单用法_状态码

传参

eg:

load = {'key1':'value1','key2':'value2','key3':'None'}
r = requests.get('http://httpbin.org/get',params = load)
print(r.url)

python-requests的简单用法_github_02

用列表传递参数

eg:

load = {'key1':'value1','key2':['value2','value3']}
r = requests.get('http://httpbin.org/get',params = load)
print(r.url)

python-requests的简单用法_github_03

r.raw返回原始socket respons,需要加参数stream=true
r = requests.get('https://api.github.com/events', stream = True)
print(r.raw)
print(r.raw.read(10))

python-requests的简单用法_状态码_04

传递headers

eg:

url = 'http://httpbin.org'
headers = {'user-agent':'my-app/0.0.1'}
r = requests.get(url,headers = headers)
print(r.url)

python-requests的简单用法_状态码_05

传递cookies
url = 'http://httpbin.org/cookies'
r = requests.get(url,cookies=dict(cookies_are='working'))
#r.text 返回headers中的编码解析的结果,可以通过r.encoding = 'gbk'来变更解码方式
print(r.text)

python-requests的简单用法_github_06

JSON响应内容
import requests
r = requests.get('https://github.com/timeline.json')
print(r.json())

POST请求

传递表单
r = requests.post('http://httpbin.org/post',data={'key':'value'})

load = {'key1':'value','key2':'value2'}
r = requests.post('http://httpbin.org/post',data=load)
print(r.text)

python-requests的简单用法_github_07

POST提交文件

先制作一个text文件,名为‘test.txt’,内容是‘this is a file’。Requests使得上传多部分编码文件变得很简单:

url = 'http://httpbin.org/post'
files = {'file': open('test.txt', 'rb')}
r = requests.post(url, files=files)
print(r.text)
POST提交表单

传递一个字典给 data 参数就可以了。数据字典在发出请求时会自动编码为表单形式:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
响应状态码

使用r.status_code返回响应的状态码

r = requests.get("http://httpbin.org/get")
print(r.status_code)

为使用方便,Requests还附带了一个内置的状态码查询对象:

r = requests.get("http://httpbin.org/get")
print(r.status_code)
print(r.status_code == requests.codes.ok)
异常

如果发送了一个失败请求(非200响应),我们可以通过 Response.raise_for_status()来抛出异常:

bad_r = requests.get('http://httpbin.org/status/404')
print(bad_r.status_code)
bad_r.raise_for_status()

python-requests的简单用法_github_08


如果返回码是200,则不会抛出异常,即:

bad_r = requests.get('http://httpbin.org/get')
print(bad_r.status_code)
bad_r.raise_for_status()

python-requests的简单用法_github_09

读取头部信息
r = requests.get("http://httpbin.org/get")
print(r.headers)
print(r.headers['Content-Type'])

python-requests的简单用法_状态码_10

重定向与请求历史

默认情况下,除了 HEAD, Requests会自动处理所有重定向。
可以使用响应对象的 history 方法来追踪重定向。

r = requests.get('http://github.com')
print(r.url)
print(r.status_code)
print(r.history)
#如果你使用的是GET, OPTIONS, POST, PUT, PATCH 或者 DELETE,,那么你可以通过 allow_redirects 参数禁用重定向处理:
r = requests.get('http://github.com', allow_redirects=False)
print(r.status_code)

r.history
#如果使用的是HEAD,你也可以启用重定向:
r = requests.head('http://github.com', allow_redirects=True)
print(r.url)
print(r.history

python-requests的简单用法_状态码_11