python第三方库-Requests库-使用指南

目录

  • Requests Library 库使用指南
    • 开始
    • Response
      • Headers
    • Query String Parameters
      • Request Headers
    • Other HTTP Methods
      • The message Body
    • Inspecting Your Request
    • Authentication
    • SSL Certufucate Verfucatuib
    • Performance
      • Timeouts(暂停)
      • The Session Object
    • Max Retries 最大重试次数
    • ConClusion

Requests Library 库使用指南

Request 简单,漂亮的API设计

开始

response = request.get('url')

# 可以向下面这样做
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
# 还可以这样!
if response:
		print('成功')
else:
		print('失败')

get()方法返回的是一个Response 对象的一个实例。(在本例中被存储到response 这个变量里)

**提示:**为什么可以这样做?

是因为__bool__() 是Response对象的一个重载方法

注意:if response 语句,状态码200-400 这个表达式的值均为True

如果你不想在if语句里面检查响应的状态码。

相反,你想在请求不成功的时候引发一个异常。

可以这样做

import requests
from requests.exceptions import HTTPError

for url in ['https://api.github.com', 'https://api.github.com/invalid']:
    try:
        response = requests.get(url)

        # If the response was successful, no Exception will be raised
        response.raise_for_status()
    except HTTPError as http_err:
        print(f'HTTP error occurred: {
     http_err}')  # Python 3.6
    except Exception as err:
        print(f'Other error occurred: {
     err}')  # Python 3.6
    else:
        print('Success!')

如果状态码是成功类状态码,程序继续执行,不引发异常。否则将引发异常。

Response

查看响应的字节内容,可以使用 .content

response = requests.get('https://api.github.com')
response.content

可以编码→转换为字符串。当你使用.text是默认转为utf-8(requests 会从请求头猜测编码,一般是utf-8)

response.text

也可以显式编码。

response.encoding = 'utf-8' 
response.text

如果你查看响应,它实际上是序列化的json内容。

为了得到Python的数据结构(字典)

要进行反序列化

response.json()

Headers

header 返回一个类似字典的对象,允许通过键访问header值。


你可能感兴趣的:(python,request)