python header_通过python获得header中的session

在做接口自动化过程中,我们常常会用到用户登录后进行接口测试,那么我们如何进行获取header中的session呢。我们现在看一下以下代码:

def session(DATA):

#通过配置文件获得url地址,也可以写死在这里

Url = ConnUrl.getUrl()

#声明request的请求类型,是json还是text

header = {'content-type':'application/octet-stream'}

#发送登陆请求

post = requests.post(Url, data=DATA, headers=header)

#通过post方法中的headers获取session,并且按照“分号进行切割,取第一位的数据”

jsessionid = post.headers['Set-Cookie'].split(';')[0]

#返回session

return jsessionid

#关闭链接

post.close

大家看,其实我们通过python的requests方法就可以很轻松的获得用户的session,在测试其他接口时,我们把session插入到header里即可,如下:

def posttest(jsessionid)

#定义接口的请求地址

url=http://IP/login

#测试数据要用字典的方式定义

data={'参数1':'测试数据1','参数2':'测试数据2'}

#定义header关键内容,header依然是字典的方式

header={

'content-type':'application/json',

'session':jsessionid

}

#发送请求

post = requests.post(Url, data=DATA, headers=header)

#获取响应结果中的文本

respond = post.text

#断言相应结果是否与预期结果想一致

assert '预期结果' in respond

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当爬取需要登录的网页时,除了发送登录请求外,有时还需要设置特定的请求头(header)来模拟浏览器行为。下面是一个示例代码,演示如何使用requests库和自定义请求头来爬取需要登录的网页: ```python import requests # 创建一个session对象 session = requests.Session() # 设置登录信息 login_url = 'http://example.com/login' login_data = {'username': 'your_username', 'password': 'your_password'} # 发送登录请求 response = session.post(login_url, data=login_data) # 检查登录是否成功 # 设置自定义请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', 'Referer': 'http://example.com', 'Accept-Language': 'en-US,en;q=0.9', 'Cookie': 'your_cookie_value' } # 发送带有自定义请求头的请求 data_url = 'http://example.com/data' response = session.get(data_url, headers=headers) # 处理返回的数据 print(response.text) ``` 在上述代码,首先创建一个session对象,并发送登录请求以获取登录信息。接下来,设置自定义请求头,其包括User-Agent、Referer、Accept-Language和Cookie等字段,根据目标网站的要求进行相应的设置。最后,使用session对象发送带有自定义请求头的请求,即可获取需要登录后才能访问的网页数据。 请注意,具体的请求头内容需要根据目标网站的要求进行设置。可以通过浏览器开发者工具或其他网络抓包工具来查看请求头的具体信息。另外,同样需要遵守网站的使用规则和法律法规,避免对目标网站造成不必要的负担或违反相关规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值