在实际工作中,有些接口请求完以后会重定向到别的url,而你却需要重定向前的url。

1、请求转发

该动作是服务器行为,在web容器中进行的,客户端对于跳转是不知道的,地址栏中显示的URL是不会变化的,因为请求转发中是一次请求,相同的request,可以在请求中设置属性对象(setAttribute())来实现数据共享

request.getRequestDispatcher(URL).forward(request,response);

2、请求重定向(sendRedirect,也称为间接的请求转发)

该动作是客户端行为,服务器会向客户端返回一个301状态码并携带一个Location属性表名应请求的地址,然后客户端按照服务器返回的地址重新发送请求,地址栏中显示的URL是会变化的因为请求重定向中是两次不同的请求request,无法实

现数据共享

response.sendRedirect(URL);

重定向

常见的重定向分为301重定向和302重定向。重定向是一种比较特别的优化方式,因为需要通过代码来实现,从而变相提高权重值。所以在特殊情况下,如果使用重定向过于严重,则会被搜索引擎判定为不是正当的优化。

1、301重定向代表永久性转移(Permanently Moved)

301重定向被称之为永久性重定向,主要是针对一些永久性更改的网站,而且这种重定向一旦做好,将会对网站的优化大有好处。

2、302重定向代表暂时性转移(Temporarily Moved )

302重定向的使用并不多见,它通常被称之为暂时性的转移。302重定向的使用常见于meta重定向和JavaScript重定向。而这种重定向是典型的不正当行为,很容易被搜索引擎发现,并将其重定向的网址定义为不合法网站,做出惩罚。

3、以博客园举个简单的场景案例,先登录博客园打开我的博客首页,进入任意一个页面都可以,在这里进我的随笔编辑界面,记住这个地址:https://i.cnblogs.com/EditPosts.aspx?opt=1

4.退出博客园登录,把刚才我的随笔这个地址https://i.cnblogs.com/EditPosts.aspx?opt=1输入浏览器回车,抓包会看到这个请求状态码是 302。

启用或禁止重定向(allow_redirects)

默认情况下,allow_redirects=True是启用重定向的。

获取重定向后地址

1.在无权限请求后,服务器会下发一个新的请求链接,在response的headers里,如fiddler抓包的Location

2.代码试下获取Location地址

---------------------------------------------------------------------------------------------------------------------------

咱们查看源码,requests.get,get的源码;pycharm中通过ctrl+鼠标左键可以定位到方法的位置。

kwargs是字典类型,setdefault的作用是给字典键名allow_redirects赋值。

python重定向_Python接口自动化(十)重定向(Location)相关推荐

  1. python 封装_python接口自动化学习笔记(封装方法用于读取excel)

    本文是为难得干货文章 (是位大佬所写哦) 大家好,我是测试君. 下面分享一波Python接口自动化文章: 本篇是使用xlrd实现的对excel的数据进行读取,xlrd网上demo很多,不做过多叙述,下 ...

  2. python调用文件下载接口_python接口自动化21-下载excel文件(Content-Type:octets/stream)...

    前言 Content-Type类型为octets/stream,这种一般是文件类型了,比如有时候需要导出excel数据,下载excel这种场景如何用python来实现呢? 抓下载接口 1.下载的场景如 ...

  3. 浅谈python+requests实现接口自动化

    前言 今年2月调去支持项目接口测试,测试过程中使用过postman.jmeter工具,基本能满足使用,但是部分情况下使用较为麻烦. 比如:部分字段存在唯一性校验或字段间有业务性校验,每次请求均需手工修 ...

  4. python+requests+pytest 接口自动化框架(四)

    目录 一.requests库简介 二.requests库常用方法 三.request()返回的response对象 四.实战案例 post(url, data=None, json=None, **k ...

  5. python+requests+pytest 接口自动化框架(一)

    目录 一.Pytest详解以及常用的插件安装 二.Pytest默认的测试用例的规则 三.Pytest用例运行方式以及参数 1.命令行模式运行 命令:pytes 2.主函数模式运行 3.基于pytest ...

  6. 后端接口重定向_接口自动化面试题,建议收藏!

    1.get和post的区别? l http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议 l Get会把参数附在url之后,用?分割,&连接不同参数,Get获取资 ...

  7. python调用接口时传多个参数_python接口自动化11-post传data参数案例

    前言: 前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数. 一.登录jenkins抓包 1.登录jenkins,输入账 ...

  8. python接口自动化关联参数_python接口自动化7-参数关联

    前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...

  9. python接口测试框架与自动化实战_Python接口自动化从设计到开发,测试框架实战与自动化进阶视频课程...

    Python接口自动化从设计到开发,测试框架实战与自动化进阶视频课程21套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白 ...

最新文章

  1. 秋招 百度二轮面试---血淋淋的经历写实
  2. 基于Python技术栈的算法落地踩坑
  3. php mysql需要服务器配置_php服务器配置(php+mysql+iis)步骤
  4. python tkinter画布位置_Python Tkinter坐标画布
  5. java类与对象实验报告心得体会_Java类与对象实验报告.doc
  6. Java集合总结大全--史上最强
  7. Stream Processing With Flink (7) 状态算子和用户函数
  8. 局域网传输文件_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式
  9. 全国计算机自动化办公专业人才证书,办公自动化证书有什么用
  10. The overload Pattern
  11. python切换环境_python如何变换环境
  12. 0704暑假集训前的欢乐大杂烩总结
  13. 第四百九十五日:念念不忘,必有回响
  14. 商店英雄显示无法连接服务器,商店英雄攻略 新手常见问题FAQ汇总[视频][多图]...
  15. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
  16. 依锥彻怕燎方跃涣牧叵邻牟辟岗俅
  17. lyapunov直接法
  18. 体育馆团体预约系统UML软件工程第16周项目日志
  19. Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)
  20. 驱动开发:内核无痕隐藏自身分析

热门文章

  1. POI读取Excel内容格式化
  2. 后缀数组 --- HDU 3518 Boring counting
  3. 实体框架 5.0:空间数据类型、性能增强、数据库提升
  4. javascript让firefox支持innerText
  5. python代码技巧_几个小技巧让你的Python代码更Pythonic
  6. OpenJudge NOI 1.7 26:字符串最大跨距
  7. 信息奥赛一本通(1839:【05NOIP提高组】谁拿了最多奖学金)
  8. 数论 —— 佩尔方程与连分数
  9. C++语言基础 —— STL —— 容器与迭代器 —— set 与 multiset
  10. 石子合并问题--直线版(Hrbust-1818)