zoukankan      html  css  js  c++  java
  • python接口自动化发送get请求 详解(一)

    前言:接口自动化实现自动化脚本比较稳定,主要用到requests模块,后面我会把这个模块单独拉出来写一下。

    一、环境安装

    1.用pip安装requests模块

    >>pip install requests

    注意:pip很容易就会版本升级,

      方法1:检测并更新

    pip list –outdated

      方法2:

        ♦先卸载:

    pip uninstall packagename

        ♦在用:easy_install.exe安装

    easy_install.exe pip

    二、get请求

      ♦1.导入requests后,用get方法就能直接访问url地址,如:http://open.juhe.cn/#page1,看起来是不是很酷

      ♦2.这里的r也就是response,请求后的返回值,可以调用response里的status_code方法查看状态码

      ♦3.状态码200只能说明这个接口访问的服务器地址是对的,并不能说明功能OK,一般要查看响应的内容,response .text是返回文本信息

     输入代码:

    import requests#导入request模块
    url = 'http://open.juhe.cn/#page1'
    response = requests.get(url)#用导入的request模块的get方法访问URL
    print(response.status_code)#调用response里的status_code方法查看状态码
    print(response.text)#调用response里的text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

    输出结果:

    三、发送带有params(参数)的get请求

      ♦1.再发一个带参数的get请求,如在百度中搜:聚合数据网,url地址为:https://read.douban.com/search?q=斗破苍穹

      ♦2.请求参数:q=斗破苍穹,可以以字典的形式传参:{"q": "斗破苍穹"}

      ♦3.多个参数格式:{"key1": "value1", "key2": "value2", "key3": "value3"}

      ♦4.发送请求格式是:URL+参数:实例:requests.get(url=url,params=params1)

    代码输入:

    import requests#导入request模块
    url = r'https://read.douban.com/search'
    params1 = {"q":"斗破苍穹"}
    response = requests.get(url=url,params=params1)#用导入的request模块的get方法访问URL,并在后面加上参数
    print(response.status_code)#调用response里的status_code方法查看状态码
    print(response.text)#调用response里的text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

    输出结果:

     

     

    四、content

      ♦1.百度首页如果用r.text会发现获取到的内容有乱码,因为百度首页响应内容是gzip压缩的(非text文本)

      ♦2.如果是在fiddler工具乱码,是可以点击后解码的,在代码里面可以用r.content这个方法,content会自动解码 gzip 和deflate压缩

     

    五、response

      ♦1.response的返回内容还有其它更多信息

      -- r.status_code     #响应状态码
      -- r.content           #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
      -- r.headers          #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
      -- r.json()             #Requests中内置的JSON解码器
      -- r.url                  # 获取url
      -- r.encoding         # 编码格式
      -- r.cookies           # 获取cookie
      -- r.raw                #返回原始响应体
      -- r.text               #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
      -- r.raise_for_status() #失败请求(非200响应)抛出异常

    代码如下:

     

    import requests#导入request模块
    url = r'https://read.douban.com/search'
    params1 = {"q":"斗破苍穹"}
    response = requests.get(url=url,params=params1)#用导入的request模块的get方法访问URL,并在后面加上参数
    print(response.status_code)#调用response里的status_code方法查看状态码
    print(response.headers)   #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
    print(response.content)#字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
    #print(response.json())     #Requests中内置的JSON解码器
    print(response.url)      # 获取url
    print(response.cookies)  # 获取cookie
    print(response.encoding) # 编码格式
    print(response.raw)  #返回原始响应体
    print(response.text)#调用response里的text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
    #print(response.raise_for_status()) #失败请求(非200响应)抛出异常

     

    输出结果如下:

                                                           

                                                     哪有不对欢迎指出哦。

  • 相关阅读:
    js setInterval() 用法示例
    js 判断iframe是否加载完毕
    el表达式 多条件判断
    exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
    oracle 存储过程 示例
    linux下小试redis demo
    关于数组的一些经常使用函数
    大话设计模式—何为设计模式
    窗口间传值的几种方法
    ncurses简单的一个多窗体程序
  • 原文地址:https://www.cnblogs.com/insane-Mr-Li/p/9101268.html
Copyright © 2011-2022 走看看