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响应)抛出异常
输出结果如下:

哪有不对欢迎指出哦。
python接口自动化发送get请求 详解(一)的更多相关文章
- python接口自动化测试之requests库详解
前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urll ...
- python接口自动化(delete请求)
python接口自动化(delete请求) 一.delete请求的目的:删除资源 二.应用 导包:import requests 调用delete方法:requests.delete(url) 获取响 ...
- python接口自动化(put请求)
python接口自动化(put请求) 一.put请求的作用:更新资源 二.应用 导包:import requests 调用requests.put()方法 参数有URL.data.headers,方法 ...
- python接口自动化(post请求)
python接口自动化(post请求) 一.post请求的作用:新增资源 二.data格式的参数请求(data是字典对象) #1.导包 import requests #2.调用post方法 #请求的 ...
- python接口自动化(get请求)
python接口自动化(get请求) get请求的目的:查询资源 一.导包 二.请求的URL 三.请求的参数 四.获取请求的URL 五.获取响应的状态码 六.获取响应的本文信息 #导包 import ...
- python WEB接口自动化测试之requests库详解
由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...
- 跨域发送HTTP请求详解
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述几种跨域发HTTP请求的几种方法,POST请求,GET请求 目录: 一,采用JsonP的方式(只能 ...
- 接口自动化测试之HTTP协议详解
协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信.所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合. OSI模型 1978年国 ...
- python nginx+uwsgi+WSGI 处理请求详解
https://blog.csdn.net/a519640026/article/details/76157976 请求从 Nginx 到 uwsgi 到 django 交互概览 作为python w ...
随机推荐
- 给我们的Empty Object加个图标
Gizmos.DrawIcon (transform.position, "1.png", true);
- 图是否是树 · Graph Valid Tree
[抄题]: 给出 n 个节点,标号分别从 0 到 n - 1 并且给出一个 无向边的列表 (给出每条边的两个顶点), 写一个函数去判断这张`无向`图是否是一棵树. 给出n = 5 并且 edges = ...
- MVC数据注解
数据注解 using System.ComponentModel.DataAnnotations; KeyAttribute 唯一主键StringLengthAttribute 字符串长度约束MaxL ...
- [SoapUI] 通过Groovy Script获取当前运行的是哪套Environment
log.info testRunner.testCase.testSuite.project.getActiveEnvironment().getName()
- Java 设计模式系列(五)原型模式
Java 设计模式系列(五)原型模式 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象.这就是选型模式的用意. 一.原型模 ...
- JavaScript 语法总结3
1. 数组初始化可以跳着来 var s = [1,2,,,,6]; // 中间省略的元素为undefined 2. 函数定义表达式: var f = function(args){ return ...
- jFinal render为什么不跳转到指定的页面
jFinal render为什么不跳转到指定的页面 1:需要在你自己的主配置文件里面配置所有页面的文件前缀,没配置默认是项目的根目录 //配置页面访问主路径 me.setBaseViewPath(&q ...
- 前端福利之HTML5 UTF-8 中文乱码(转)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JAVA反射机制o
Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性.例如,使用它能获得 Java 类中 ...
- 企业搜索引擎开发之连接器connector(十八)
创建并启动连接器实例之后,连接器就会基于Http协议向指定的数据接收服务器发送xmlfeed格式数据,我们可以通过配置http代理服务器抓取当前基于http协议格式的数据(或者也可以通过其他网络抓包工 ...