前言:接口自动化实现自动化脚本比较稳定,主要用到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响应)抛出异常

输出结果如下:

                                                       

                                                 哪有不对欢迎指出哦。

python接口自动化发送get请求 详解(一)的更多相关文章

  1. python接口自动化测试之requests库详解

    前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urll ...

  2. python接口自动化(delete请求)

    python接口自动化(delete请求) 一.delete请求的目的:删除资源 二.应用 导包:import requests 调用delete方法:requests.delete(url) 获取响 ...

  3. python接口自动化(put请求)

    python接口自动化(put请求) 一.put请求的作用:更新资源 二.应用 导包:import requests 调用requests.put()方法 参数有URL.data.headers,方法 ...

  4. python接口自动化(post请求)

    python接口自动化(post请求) 一.post请求的作用:新增资源 二.data格式的参数请求(data是字典对象) #1.导包 import requests #2.调用post方法 #请求的 ...

  5. python接口自动化(get请求)

    python接口自动化(get请求) get请求的目的:查询资源 一.导包 二.请求的URL 三.请求的参数 四.获取请求的URL 五.获取响应的状态码 六.获取响应的本文信息 #导包 import ...

  6. python WEB接口自动化测试之requests库详解

    由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...

  7. 跨域发送HTTP请求详解

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述几种跨域发HTTP请求的几种方法,POST请求,GET请求 目录: 一,采用JsonP的方式(只能 ...

  8. 接口自动化测试之HTTP协议详解

    协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信.所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合. OSI模型 1978年国 ...

  9. python nginx+uwsgi+WSGI 处理请求详解

    https://blog.csdn.net/a519640026/article/details/76157976 请求从 Nginx 到 uwsgi 到 django 交互概览 作为python w ...

随机推荐

  1. ios7 导航栏适配

    ios ui开发过程中,经常会使用到导航栏,默认的样式比较单一,所以经常需要修改导航栏的样式 ios4: - (void)drawRect:(CGRect)rect { UIImage *image ...

  2. U盘修复技巧

    目前,U盘的使用已经非常普遍,人们经常用U盘来备份.携带.转移文件.但是,如果将U盘从USB口拔出之前,忘记了执行卸载*作,或者执行卸载*作不彻底,或者由于误*作,而直接将U盘从USB口拔了出来,就有 ...

  3. select_shape_proto算子的几种特征模式含义解析

    select_shape_proto是一个非常有用的region筛选算子,但是由于难以理解,因此一般人使用得不是太多. 算子签名如下: select_shape_proto(Regions, Patt ...

  4. [转].NET 4.5+项目迁移.NET Core的问题记录 HTTP Error 502.5

    本文转自:http://www.cnblogs.com/ronli/p/5900001.html 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过 ...

  5. Android登录模块原理及实现

    1.需要保持登录状态,在本地保存登录的状态信息. 2.界面布局 3.登录流程 输入信息=>登录成功=>手机号发送验证码=>输入验证码=>登录成功

  6. Hadoop中Writable类之三

    1.BytesWritable <1>定义 ByteWritable是对二进制数据组的封装.它的序列化格式为一个用于指定后面数据字节数的整数域(4个字节),后跟字节本身. 举个例子,假如有 ...

  7. Linux 基础教程 34-软件包管理-RPM

        对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础     RPM(RedHat Package ...

  8. Ubuntu的常识使用了解3

    打包与压缩

  9. Blend 2015 教程 (五) 自定义状态

    本篇再补充一块内容,就是自定义状态的介绍. 自定义状态用于封装用户控件在各种状态之间切换时的外观变化及其动画效果,方便调用.比如有个用户控件用于实现类似舞台幕布打开和关闭切换的效果,可以创建幕布关闭和 ...

  10. ubuntu 安装 hubicfuse

    如果你没有gcc,请先安装gcc: 1: apt-get install build-essential 1. 从github上clone源码: https://github.com/TurboGit ...