美文网首页
Python接口测试- requests 发送 get 请求

Python接口测试- requests 发送 get 请求

作者: 猫与测试 | 来源:发表于2019-10-30 09:18 被阅读0次

    get 请求我们选择 腾讯天气 接口。首先我们看文档如下:


    这里就相当于是接口文档,从这里我们可以获取到:请求方法、url、请求参数

    首先我们在 Postman 中尝试一下(Postman 很容易入手,可以用来辅助来学习):



    通过 Postman ,我们能够正常访问数据。

    接下来使用 requests 库:

    import requests
    from pprint import pprint
    
    # url
    url = 'https://wis.qq.com/weather/common?source=xw&weather_type=forecast_1h|forecast_24h|index|alarm|limit|tips'
    # 构造数据,requests 全系列支持字典类型的数据
    payload = { 
        # 参考文档中的参数部分,逐一构造
        'province': '四川',
        'city': '成都',
        'county': '武侯区'
    }
    # 发送 get 请求,返回结果是服务端的响应数据
    r = requests.get(url, params=payload)
    # 获取响应报文体
    # 1.以文本方式获取报文主体
    pprint(r.text)
    # 2. 以字典格式获取报文主体(仅针对返回是 json 格式的数据)
    pprint(r.json())
    # 3. 以二进制方式获取报文主体(视频、图片等)
    pprint(r.content)
    

    其实上面的代码,发送请求就一句话:

    r = requests.get(url, params=payload)
    

    其他代码都是在构造数据,获取响应。

    当然 get 请求本身参数都在 url 中,我们也可以将参数构造在 url 中:

    # url,注意参数我们通过&和键值对的形式放在了 url 中
    url = 'https://wis.qq.com/weather/common?source=xw&weather_type=forecast_1h|forecast_24h|index|alarm|limit|tips&province=四川&city=成都&county=武侯区'
    
    # 发送 get 请求,返回结果是服务端的响应数据
    r = requests.get(url)
    # 这里的响应是 json 格式的数据,我们直接通过 json() 方法查看
    pprint(r.json())
    

    不管使用字典构造参数,亦或者是直接拼接在 url 中,最终都会被 requests 自动为我们转码为标准的 url 格式,我们可以通过 r.request.url查看请求中的实际 url 。

    print(r.request.url)
    ## https://wis.qq.com/weather/common?...&county=%E6%AD%A6%E4%BE%AF%E5%8C%BA
    

    关于响应对象中的其他属性,将在后面专门讲解。

    关于header

    一般我们是不需要专门处理请求的 header 信息,除非其中涉及到了认证的 token、或者 cookie 等数据需要同时传递给服务器。这得益于 requests 优秀的设计,很多常用的头部字段已由 requests 帮我们自动处理了。

    requests 中关于 header 的处理,与参数很像,都是通过字典来构造。

    比如,我这里传递用于标识请求数据类型的 content-type字段:

    headers = {
        # 这里的头部字段不需要区分大小写
        'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
        }
    r = requests.get(url, headers=headers)
    

    获取到响应的数据,说明我们的请求发送成功啦,后面就应该是对结果的断言咯。不过先稳一下,我们先把其他的方法了解一下。

    相关文章

      网友评论

          本文标题:Python接口测试- requests 发送 get 请求

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