• 23. requests安装与使用


    Windows下安装requests

    在介绍requests库之前,先贴一下requests官网,当然也可以访问requests中文网站

    requests官网给出以下介绍:Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。但同时也给出了警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。看吧,这就是 Requests 的威力!

    因为我们安装的版本是Python3.6.6,所以在安装过程中已经默认帮我们安装好了pip,我们可以打开cmd窗口,输入pip install requests

    requests实例

    网络基础中,我们介绍到HTTP的8种请求方法,分别是GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT,但是在实际工作中,我们常用的请求方法可能只有6种,GET、HEAD、POST、PUT、DELETE、OPTIONS。下面我们看看这6种方法如何使用吧。

    在介绍如何使用6种请求方法之前,我们先来看一下URL组成格式。

    protocol://hostname[:port]/path/[:parameter][?query]#fragment

    protocol:协议,常用的协议是http

    hostname:主机地址 可以是域名,也可以是IP地址

    port:端口 http协议默认端口是:80端口,如果不写默认就是:80端口

    path:路径 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

    parameter :参数   这是用于指定特殊参数的可选项。

    query: 查询 可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。

    fragment:片段  用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。

    虽然URL组成格式很复杂,但是我们一般看到的没这么复杂,比如百度https://www.baidu.com/,https是协议http://www.baidu.com是域名。端口是80,被隐藏。

    GET请求

    GET请求有2种情况,一种是带参数,一种是不带参数。格式如下:

    requests.get(url)
    requests.get(url, params= parameter)

    上面代码中,params是固定写法,parameter代表参数,在使用requests构造请求前,请先导入requests库,打开我们的Pycharm ,输入如下代码:

    import requests
    
    response1 = requests.get('https://api.github.com/events')
    
    payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
    
    response2 = requests.get('http://httpbin.org/get', params=payload)
    
    print(response1)
    
    print(response2)
    

    上面代码将输出如下内容:

    <Response [200]>
    <Response [200]>

    当我们构造一个请求时,一般来说,都会有响应,代码中的response1、response2就是请求的响应。我们可以查看响应的url、text(响应内容)、content(二进制响应内容)、json响应内容、raw(原始响应内容)等,使用起来也较为简单,如下代码所示:

    response.url
    
    response.text
    
    response.content
    
    response.json
    
    response. Raw
    

    当然我们也可以给请求加入headers,有关headers内容,我们在HTTP请求与响应中,已经介绍过,加入headers的GET请求格式如下:

    import requests
    
    url = 'https://api.github.com/some/endpoint'
    
    headers = {'user-agent': 'my-app/0.0.1'}
    
    response = requests.get(url, headers=headers)
    

    POST请求

    Post请求构造起来也比较简单,格式如下:

    requests.post(url, data= parameter)
    requests.post(url, json= parameter)

    上面代码中,params是固定写法,data/json代表参数类型,为了方便理解,下面我们将构造一些实例, 如下代码所示:

    import requests
    
    payload = {'key1': 'value1', 'key2': 'value2'}
    response = requests.post("http://httpbin.org/post", data=payload) # data格式参数
    
    print(response.text)
    print(response.url)
    print(response.content)
    print(response.raw)
    print(response.json())
    
    url = 'https://api.github.com/some/endpoint'
    payload = {'some': 'data'}
    r = requests.post(url, json=payload) # json 格式参数
    print(r.text)
    

    我们还可以使用requests上传文件,我们在代码同级目录创建report.xml,输入如下代码:

    import requests
    
    url = 'http://httpbin.org/post'
    files = {'file': open('report.xls', 'rb')}
    r = requests.post(url, files=files)
    
    print(r.text)
    

    PUT、DELETE、HEAD、OPTIONS请求

    创建格式如下代码所示:

    requests.put('http://httpbin.org/put', data = {'key':'value'})
    
    requests.delete('http://httpbin.org/delete')
    
    requests.head('http://httpbin.org/get')
    
    requests.options('http://httpbin.org/get')
    

    小结:PUT、DELETE、HEAD、OPTIONS四个请求中,笔者只用过PUT、DELETE,使用方法也比较简单,这里同样不做过多介绍,在本章中,我们介绍了如何在Windows下安装requests,如何构造GET、HEAD、POST、PUT、DELETE、OPTIONS请求,这6种请求中,重点介绍了GET、POST请求方法,这2种方法在接口测试中也是最常用的请求方法,希望读者可以详细阅读requests中文网站

    欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

  • 相关阅读:
    Matplotlib 绘图库 基本使用方法
    linux socat命令
    linux shell重定向
    linux man命令
    bashttpd使用手册
    libcurl代码示例
    vim文件头部注释配置
    linux join命令
    iterm2切换显示屏vim乱行解决
    分形与混沌
  • 原文地址:https://www.cnblogs.com/suim1218/p/10563413.html
Copyright © 2020-2023  润新知