报文头与状态码

Python 中的 API 入门

Chris Ramakers

Engineering Manager

请求与响应消息结构

请求与响应消息示例。请求:GET /users/42,带报文头。响应:200 OK,JSON 主体包含用户信息。

Python 中的 API 入门

起始行(start-line)

请求或响应消息的三个部分示例,突出显示起始行

  • 服务器在响应消息中将始终包含一个数字状态码
Python 中的 API 入门

状态码

状态码类别

  • 1XX:信息性响应
  • 2XX:成功响应
  • 3XX:重定向
  • 4XX:客户端错误
  • 5XX:服务器错误

常用状态码

  • 200:OK
  • 404:Not Found
  • 500:Internal Server Error
1 完整响应码列表请参阅 MDN 状态码页面:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Python 中的 API 入门

报文头

请求或响应消息的三个部分示例,突出显示报文头

key1: 值 1
key2: 值 2
Python 中的 API 入门

示例:用报文头进行内容协商

请求或响应消息的三个部分示例,突出显示报文头

  • 客户端在请求中添加 accept: application/json
  • 服务器用 content-type: application/json 头响应
Python 中的 API 入门

requests 中的报文头

# 向请求添加报文头
response = requests.get(
  'https://api.datacamp.com', 
  headers={'accept':'application/json'}
)
# 读取响应头
response.headers['content-type']
'application/json'
response.headers.get('content-type')
'application/json'
Python 中的 API 入门

requests 中的状态码

# 访问状态码
response = requests.get('https://api.datacamp.com/users/12')

response.status_code == 200
True
# 使用 requests.codes 查询状态码
response = requests.get('https://api.datacamp.com/this/is/the/wrong/path')

response.status_code == requests.codes.not_found
True
Python 中的 API 入门

Ayo berlatih!

Python 中的 API 入门

Preparing Video For Download...