• Requests库


    Requests库介绍
    1.使用python语言编写
    2.使用开源协议,基于urllib库做的二次封装
    3.Requests库中封装了相应接口测试方法
    Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库;
    相比urllib库,Requests库更加方便,可以节约我们大量的工作,完全满足HTTP测试需求
    Requests库安装及验证
    安装:pip install requests
    验证:pip show requests -->显示相应的版本信息
    发送请求
    常见的HTTP请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS
    使用requests发送网络请求非常简单,只需要调用HTTP请求类型所对应的方法即可。
    GET请求
    import requests
    response = requests.get('https://www.baidu.com/')
    请求方法的返回值response为Response对象,我们可以从这个对象中获取所有我们想要的响应信息。

    '''
        目标:Get请求方法带参演练
        案例:
            1.https://www.baidu.com?id=1001
            2.https://www.baidu.com?id=1001,1002
            3.https://www.baidu.com?id=1001&kw=北京
        请求:
            1.请求方法:GET
        参数:
            params:字典或字符串(推荐使用字典)
        响应:
            1.响应对象.url #获取请求url
            2.响应对象.status_code #获取响应状态码
            3.响应对象.text #以文本形式显示响应内容
    '''
    # 1.导包
    import requests
    # 2.调用get
    url='https://www.baidu.com'
    # 案例1 定义字典
    # params={"id":1001}
    # 案例1 字符串形式编写,不推荐
    # r=requests.get(url,params="id=1001")
    # 案例2
    # params={"id":"1001,1002"}   # %2C ASCI值为逗号
    # 案例3
    params={"id":1001,"kw":"北京"} # 多个键值使用方式
    # 请求是带参 params
    r=requests.get(url,params=params)  # r为响应数据对象
    # 3.获取请求url地址
    print("请求url:",r.url)
    # 4.获取响应状态码
    print("状态码:",r.status_code)
    # 5.获取响应信息
    print("响应信息:",r.text)

    POST请求

    作用:新增资源
    response = requests.post(url,data=None,json=None)
      url:请求的URL
      data:(可选)要发送到请求体的字典、元组、字节或文件对象
      json:(可选)要发送到请求体的JSON数据
    import requests
    response = requests.post("https://www.baidu.com/",data={"key":"value"})

    扩展:
    data与json的区别

    • data:字典对象
    • json:json字符串
    • 提示:
    1. 在python中字典对象和json字符串长得一样,但是后台格式是有区别的
    • 如何将字典对象转为json字符串?
    1. 导入json
    2. json.dumps(字典对象) #转换json字符串

    响应数据json()与text区别

    • json():返回类型字典,可以通过键名来获取响应的值
    • text:返回的类型为字符串,无法通过键名来获取响应的值
    • 提示:共同点长得都像字典

    PUT请求
    作用:更新资源
    应用:

    • 导包 import requests
    • 调用put方法 requests.put()
    • 示例:r=requests.put(url,json,headers)

    参数:参考post方法参数
    响应:

    • r.json()
    • r.status_code

    import requests
    response = requests.put("https://www.baidu.com/",data={"key":"value"})

    DELETE请求
    作用:删除资源
    应用:

    • 导包 import requests
    • 调用方法 delete

    响应:

    • 响应状态码:204

    import requests
    response = requests.delete("https://www.baidu.com/")

    HEAD、OPTIONS
    import requests
    response = requests.head("https://www.baidu.com/")
    response = requests.options("https://www.baidu.com/")
    响应内容
    response.status_code  获取响应状态码
    response.url                 获取请求url地址
    response.encoding       查看响应头部字符编码
    response.headers        头信息
    response.cookies         cookie信息
    response.text               文本形式的响应内容
    response.content         字节形式的响应内容
    response.json()           JSON形式的响应内容

    '''
        目标:响应对象常用方法
            1.encoding
                1)获取请求编码
                2)设置相应编码
            2.headers
                1)获取响应信息头信息
        案例:https://www.baidu.com
    '''
    import requests
    url = 'https://www.baidu.com'
    r = requests.get(url)
    # 查看默认请求编码(不指定响应编码时,用的就是请求编码) ISO-8859-1  这个时候响应信息汉字是乱码
    print(r.encoding)
    # 设置响应编码
    r.encoding = "utf-8"
    # 查看响应内容
    print(r.text)
    # 查看响应信息头
    print(r.headers)
    '''
        目标:响应对象常用方法
            1.cookies
                1)获取响应cookies信息
            2.content
                1)以字节码形式获取响应信息(图片、视频..多媒体格式)
        案例:
            cookies:https://www.baidu.com
            content:https://www.baidu.com/img/bd_logo1.png?where=super
    '''
    import requests
    # url = 'https://www.baidu.com'
    # r = requests.get(url)
    # # 获取响应cookies  返回字典对象
    # print("cookies信息为",r.cookies)
    # # 通过键名获取响应的cookies值
    # print("cookies信息为",r.cookies['BDORZ'])
    url_img = 'https://www.baidu.com/img/bd_logo1.png?where=super'
    r = requests.get(url_img)
    # 以text文本形式解析图片 --->乱码
    # print(r.text)
    # 以字节码形式解析图片
    print(r.content)
    # 将图片写入当前目录baidu.png
    with open("./baidu.png","wb") as f:
        f.write(r.content)

  • 相关阅读:
    JavaScript语言和jQuery技术1
    JSP2
    JavaScript语言和jQuery技术2
    MYSQL2
    JSP1
    JSP5
    JSP3
    Spring框架
    JSP4
    MYSQL3(查询)
  • 原文地址:https://www.cnblogs.com/peiya/p/12912805.html
Copyright © 2020-2023  润新知