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 ...
随机推荐
- 【bzoj3437】小P的牧场
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 947 Solved: 542[Submit][Status][Discuss ...
- leetcode 20 Valid Parentheses 有效的括号
描述: 给定一些列括号,判断其有效性,即左括号有对应的有括号,括号种类只为小,中,大括号. 解决: 用栈. bool isValid(string s) { stack<char> st; ...
- rtx自定义面板不更新
服务器和客户端自定义面的文件分别在下列xml中. 程序员的基础教程:菜鸟程序员
- centos7之saltstack使用手册
武sir的图镇楼: salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppe ...
- 1.oracle dblink(数据库不同实例数据对导)
.创建一个两个数据库之间的dblink,语法如下 create database link to_test connect to scott identified by tiger using '(D ...
- 前端福利之盘飞那个 "阿里矢量图" (转)
一.准备工作 1.首先,进入阿里的矢量图标库,在这个图标库里面可以找到很多图片资源,当然了需要登录才能下载或者使用,用GitHub账号或者新浪微博账号登录都可以 2.登录以后,可以搜索自己需要的资源, ...
- Redis是可以安装成windows服务-开机自启 win7 64位
其实Redis是可以安装成windows服务的,开机自启动,命令如下: redis-server --service-install redis.windows.conf 安装完之后,就可看到Redi ...
- javadoc tags
Where Tags Can Be Used The following sections describe where the tags can be used. Note that these t ...
- 用U盘安装Ubuntu主系统
用U盘安装Ubuntu主系统 0. 学习Ubuntu系统的的动机 ubuntu系统的内核是linux系统,通过Ubuntu的学习,掌握lInux服务器搭建!!!! 硬件要求:闲置的笔记本 + U盘 ...
- [label][JavaScript]闭包阅读笔记
原文链接来源: http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.ht ...