Python:requests高级用法(官网笔记)

1.Session()方法

2.请求头/响应头

import requests
r = requests.get('https://www.baidu.com')
print(r.request.headers)        # 请求头
print(r.headers)                # 响应头

3.Prepared Requests

4.SSL证书验证

使用说明
verify=False不进行SSL证书验证
verify='/path/to/certfile'指定受信任 CA 证书的 CA_BUNDLE 文件或目录;如果verify设置为目录的路径,则必须使用c_rehashOpenSSL 提供的实用程序处理该目录。
REQUESTS_CA_BUNDLE环境变量指定CA证书
CURL_CA_BUNDLE指定CA证书

5.客户端证书

通过cert指定客户端证书、单个文件(包含私钥和证书)或两个文件路径的元组:

requests.get('https://kennethreitz.org', cert=('/path/client.cert', '/path/client.key'))

注意:本地证书的私钥必须未加密。目前,Requests 不支持使用加密密钥。 

6.CA证书

7.Body Content Workflow

默认情况下,当发出请求时,会立即下载响应正文;在请求时添加参数stream=True会推迟下载响应正文,直到访问Response.content时才下载;

8.Keep-Alive

9.Streaming Uploads

Requests 支持流式上传,允许您发送大型流或文件而无需将它们读入内存。流式传输和上传,只需为您的 body 提供一个类似文件的对象:

with open('massive-body', 'rb') as f:
    requests.post('http://some.url/streamed', data=f)

注意:强烈建议您以二进制模式打开文件。这是因为 Requests 可能会尝试Content-Length为您提供标头,如果这样做,此值将设置为文件中的字节数。如果以文本模式打开文件,可能会出现错误。 

10. Chunk-Enabled Requests

11.POST Multiple Multipart-Encoded Files;一次上传多个文件

url = 'https://httpbin.org/post'
multiple_files = [
    ('images', ('foo.png', open('foo.png', 'rb'), 'image/png')),
    ('images', ('bar.png', open('bar.png', 'rb'), 'image/png'))]
r = requests.post(url, files=multiple_files)
r.text

12.Event Hooks

import requests
url = 'https://httpbin.org/post'

# 设置钩子函数
def verify_res(res, *args, **kwargs):
    print('url', res.url)
    res.status='PASS' if res.status_code == 200 else 'FAIL'

res = requests.get(url, hooks={'response': verify_res})
print(res.text)
print(res.status)

13.Custom Authentication

14.Streaming Requests

15.Proxies

16.SOCKS

17.Compliance

18.Encodings

19.HTTP Verbs

20.Custom Verbs

21.Link Headers

22.Transport Adapters

23.Example: Specific SSL Version

24.Blocking Or Non-Blocking?

25.Header Ordering

26.Timeouts

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值