美文网首页接口文档及接口测试学习
『居善地』接口测试 — 7.Requests库GET请求

『居善地』接口测试 — 7.Requests库GET请求

作者: 繁华似锦Fighting | 来源:发表于2021-01-04 20:09 被阅读0次

    Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求。

    (不带参数的GET请求请看上一篇文章的练习)

    1、Requests库待参数的GET请求

    使用Get方法带参数请求时,是params=参数字典,而不是data=参数字典。data=参数字典是post方法的参数。

    """
    1.学习目标
        必须掌握requests中带参数的get请求
    2.语法
        requests.get(url,parmas=None)
        2.1 不带参数的get请求(看上一篇中的练习)
        2.2 带参数的get请求(如下)
    3.操作步骤
        # 1.导入requests库
        # 2.明确请求地址
        # 3.明确请求参数
            data = {key:value}  字典格式
        # 4.发送请求获取返回数据
    4.需求
        使用requests库发送一个带参数的get请求
    """
    # 1.导入requests库
    import json
    import requests
    
    # 2.明确请求地址
    url = "http://127.0.0.1:8000/api/departments/"
    # 3.明确请求参数
    # 是一个字典类型数据
    data = {"$dep_id_list": "10,11"}
    # 4.发送请求
    response = requests.get(url=url, params=data)
    # print(response.json())
    
    # 将python对象转换为json字符串(格式化放回数据)
    result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    # print(type(result))  # 字符串类型
    print(result)
    
    
    """
    结果:
    {
      "count": 2,
      "next": null,
      "previous": null,
      "results": [
        {
          "dep_id": "10",
          "dep_name": "超神_10",
          "master_name": "陆兴雷_10",
          "slogan": "带头学习"
        },
        {
          "dep_id": "11",
          "dep_name": "超神_11",
          "master_name": "陆兴雷_11",
          "slogan": "带头学习"
        }
      ]
    }
    
    """
    

    2、查看GET请求的内容

    我们可以通过访问Httpbin来查看或者调试Requests库发送请求的内容。

    还是以上面的例子为例:

    # 1.导入requests库
    import json
    import requests
    
    # 2.明确请求地址
    # url = "http://127.0.0.1:8000/api/departments/"
    url = "http://127.0.0.1:9999/get"
    # 3.明确请求参数
    # 是一个字典类型数据
    data = {"$dep_id_list": "10,11"}
    # 4.发送请求
    response = requests.get(url=url, params=data)
    # response = requests.get(url='http://httpbin.org/get?name=admin&age=20')  # 这种方式调用也可以
    # print(response.json())
    
    # 将python对象转换为json字符串(格式化放回数据)
    result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    # print(type(result))  # 字符串类型
    print(result)
    
    
    """
    接口返回结果:
    {
      "args": {
        "$dep_id_list": "10,11"
      },
      "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Connection": "keep-alive",
        "Host": "127.0.0.1:9999",
        "User-Agent": "python-requests/2.18.4"
      },
      "origin": "127.0.0.1",
      "url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
    }
    
    我们可以看到args属性中有参数内容,
    如果是不带参数的Get请求,args属性中是没有内容的,如下:
    
    {
      "args": {},
      "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Connection": "keep-alive",
        "Host": "127.0.0.1:9999",
        "User-Agent": "python-requests/2.18.4"
      },
      "origin": "127.0.0.1",
      "url": "http://127.0.0.1:9999/get"
    }
    """
    

    3、带请求头、参数的get请求

    例如上面例子中,请求头信息中"User-Agent": "python-requests/2.18.4",我们需要改变请求头中User-Agent属性的内容,看下面例子:

    # 1.导入requests库
    import json
    import requests
    
    # 2.明确请求地址
    # url = "http://127.0.0.1:8000/api/departments/"
    url = "http://127.0.0.1:9999/get"
    # 3.明确请求参数
    # 是一个字典类型数据
    data = {"$dep_id_list": "10,11"}
    
    # 明确请求头信息
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"}
    
    # 4.发送请求
    response = requests.get(url=url, params=data, headers=headers)
    # print(response.json())
    
    # 将python对象转换为json字符串(格式化放回数据)
    result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    # print(type(result))  # 字符串类型
    print(result)
    
    """
    接口返回结果:可以看到User-Agent属性变成了我们设置的内容了。
    {
      "args": {
        "$dep_id_list": "10,11"
      },
      "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Connection": "keep-alive",
        "Host": "127.0.0.1:9999",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"
      },
      "origin": "127.0.0.1",
      "url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
    }
    
    """
    

    除此之外Get请求还有很多请求参数,如timeout你可以设置请求时间,如果超过这个时间变自行结束请求,可以利用此判断请求代理的相应效率,避免在某些错误请求上浪费过多的时间。

    相关文章

      网友评论

        本文标题:『居善地』接口测试 — 7.Requests库GET请求

        本文链接:https://www.haomeiwen.com/subject/jsavoktx.html