接口测试时,要向重定向(响应码302,301)的网址发送请求的处理方法(python)

在接口测试的过程中,我们会遇到一些网址会重定向跳转,所以我们一开始发送请求的网址并不是我们最终需要接收请求的网址,那么如何解决呢?
在这里插入图片描述
图中是做了一个登录的动作,post的请求是我发送请求的原网址,然后它自动重定向了2个新的url,200响应码的那个是最终的请求网址

第一种:http.client库
我们需要先向原网址发送请求,获取cookie值
然后在去向最终跳转到的网址发送请求,完成登录操作。

import http.client
con=http.client.HTTPConnection(localhost,8812) #服务器ip地址,端口号
con.request(method='POST',url='/smeoa/index.php?m=login&a=check_login',
            body='emp_no=admin&password=admin',
            headers={'Content-Type': 'application/x-www-form-urlencoded'})
#取出cookie
cookie=con.getresponse().getheader('set-cookie').split(';')[0] 

#在向最终跳转到的网址发送请求
con=http.client.HTTPConnection(localhost,8812)
con.request(method='GET',url='/smeoa/index.php?m=home&a=index',headers={"Cookie":cookie})
resp=con.getresponse().read().decode()  #获取响应正文
print(resp)

结果(登录成功后返回的页面源码)
在这里插入图片描述

第二种:requests库
这种方法就比较简单了,因为利用requests库下的session方法创建session对象,去发送请求,会自动处理重定向和cookie的传递
我们直接向原网址发送请求就行了

import requests
s=requests.session() #创建session对象
url='http://localhost:8812/smeoa/index.php?m=login&a=check_login'
data={"emp_no":"admin","password":"admin"}
resp=s.post(url=url,data=data)
print(resp.text)  #打印出响应正文

结果(登录成功后返回的页面源码)
在这里插入图片描述

以上就是python中对重定向的网址发送请求的两种方法了,如果觉得对你有帮助的话,可以点个收藏,点个赞!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值