接口测试 | 22 requests基础入门

时间:2022-05-07
本文章向大家介绍接口测试 | 22 requests基础入门,主要内容包括功能特性、安装、基本示例、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

概述

从本文开始分享requests相关知识,及如何用requests进行接口测试。

requests号称:是唯一的一个非转基因的Python HTTP库,人类可以安全享用。

功能特性

下面我们看看requests的功能特色:

  • Keep-Alive & 连接池
  • 国际化域名和URL
  • 带持久化Cookie的会话
  • 浏览器式的SSL认证
  • 内容自动解码
  • basic/Digest认证
  • key/value Cookie管理
  • 自动解压
  • Unicode响应
  • HTTP/HTTPS代理支持
  • 文件分块上传
  • 流下载
  • 连接超时
  • 分块请求
  • 支持.netrc

看完上述特色,是不是发现掌握了requests库,在http/https处理方面几乎处于无敌状态了?

安装

先看下怎么安装requests, 执行以下命令:

pip install requests

安装好后如何导入requests模块呢?如下所示:

import requests

基本示例

下面我们看一个基本的示例,体验下requests的强大,直接上代码演示利用requests访问github的api,具体api说明请参见:

https://developer.github.com/v3

#-*- coding:utf-8 -*-

__author__ = "苦叶子"

# 导入模块
import requests

if __name__ == "__main__":
    print("开源优测 - requests基本示例")    

    # 发送HTTP GET请求,获取github API列表
    r = requests.get("https://api.github.com")    
    
    # 请求返回码
    status_code = r.status_code    

    # 完整的返回头
    headers = r.headers    
    
    # 请求返回头 content-type的值
    content_type = r.headers["content-type"]    
    
    # 返回内容编码类型
    code = r.encoding    
    
    # 返回内容文本
    text = r.text    

    # 若返回结果为json格式,我们可以获取其json格式内容
    json_data = r.json()    
    
    # 打印上述所有获取到的值
    print("状态码: ", status_code)
    print("返回头: ", headers)
    print("content-type: ", content_type)
    print("编码:", code)
    print("文本内容: ", text)
    print("json串内容: ", json_data)

将上述代码保存至requests_basic_demo.py中,执行下属命令运行:

python requests_basic_demo.py

运行结果如下图:

小结

本文演示了GET方法及如何获取响应状态码、响应头、编码、文本内容、json内容。