【Python接口自动化测试】(10)Requests 库详解

Requests 库详解

1、请求方法

  • requests.get()
  • requests.post()
  • requests.put() ...
  • requests.session(): 用于保持会话(session) 除了requests.session()外,其他请求方法的参数都差不多,都包含url,params, data, headers, cookies, files, auth,timeout等等

2、请求参数

  • url: 字符串格式,参数也可以直接写到url中
  • params:url参数,字典格式
  • data: 请求数据,字典或字符串格式
  • headers: 请求头,字典格式
  • cookies: 字典格式,可以通过携带cookies绕过登录
  • files: 字典格式,用于混合表单(form-data)中上传文件
  • auth: Basic Auth授权,数组格式 auth=(user,password)
  • timeout: 超时时间(防止请求一直没有响应,最长等待时间),数字格式,单位为秒

3、响应解析

  • res.status_code: 响应的HTTP状态码
  • res.reason: 响应的状态码含义
  • req.text:响应的文本格式,按req.encoding解码
  • req.content: 响应的二进制格式
  • req.encoding: 解码格式,可以通过修改req.encoding='utf-8'来解决一部分中文乱码问题
  • req.apparent_encoding:真实编码,由chardet库提供的明显编码
  • req.json(): (注意,有括号),响应的json对象(字典)格式,慎用!如果响应文本不是合法的json文本,或报错
  • req.headers: 响应头
  • req.cookies: 响应的cookieJar对象,可以通过req.cookies.get(key)来获取响应cookies中某个key对应的值 ... 示例:
import requests 
res = requests.get("https://www.baidu.com") 
print(res.status_code, res.reason) # 200 OK
print(res.text) # 文本格式,有乱码
print(res.content) # 二进制格式
print(res.encoding) # 查看解码格式 ISO-8859-1
print(res.apparent_encoding) # utf-8
res.encoding='utf-8' # 手动设置解码格式为utf-8
print(res.text) # 乱码问题被解决
print(res.cookies.items()) # cookies中的所有的项 [('BDORZ', '27315')]
print(res.cookies.get("BDORZ")) # 获取cookies中BDORZ所对应的值 27315

posted on 2021-11-09 20:42  hello_殷  阅读(241)  评论(0编辑  收藏  举报

导航

作者:hello.殷
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。