session的一些参数含义

一、会话对象session

1、session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies

import requests
s=requests.Session() #创建一个session对象
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') #设置cookies
r = s.get('http://httpbin.org/cookies') 
print(r.text)
#结果
{"cookies": { "sessioncookie": "123456789"}

2、提供请求方法的缺省数据,通过设置session对象的属性来实现

import requests
s=requests.Session()
#设置session对象的auth属性,用来作为请求的默认参数 
s.auth=('user','pass')
#设置session的headers属性,通过update方法,将其余请求方法中的headers属性合并起来作为最终的请求方法的headers  
s.headers.update({'x-text':'true'})
#发送请求,这里没有设置auth会默认使用session对象的auth属性,这里的headers属性会与session对象的headers属性合并 
r=s.get('http://httpbin.org/headers',headers={'x-test2':'true'}) #如果设置相同的'x-text'则会覆盖上面设置的header
print(r.text)

3、以上通过 s.headers.update 方法设置了 headers 的变量。然后我们又在请求中设置了一个 headers,且方法层的参数覆盖会话的参数;函数参数级别的数据会和session级别的数据合并,如果key重复,函数参数级别的数据将覆盖session级别的数据。如果想取消session的某个参数,可以在传递一个相同key,value为None的dict

#结果
{
“headers”: {
“Accept”: “/”,
“Accept-Encoding”: “gzip, deflate”,
“Authorization”: “Basic dXNlcjpwYXNz”, #
“Connection”: “close”,
“Host”: “httpbin.org”,
“User-Agent”: “python-requests/2.18.4”,
“X-Test2”: “true”, #
“X-Text”: “true” #
}
}

4、如果r = s.get(‘http://httpbin.org/headers’, headers={‘x-test’: None})将设置为None值则header中’x-test’会自动被忽略

函数参数中的数据只会使用一次,并不会保存到session中

import requests
s=requests.Session()
s.auth=('user','pass')
s.headers.update({'x-text':'true'})
r=s.get('http://httpbin.org/headers',headers={'x-test2':'true'})
print(r.text)
r=s.get('http://httpbin.org/headers')
print('第二次访问结果')
print(r.text)

在这里插入图片描述
如图第二次访问的时候已经没有函数参数设置的数据
3、会话还可以用作前后文管理器,保证with 区块退出后会话能被关闭

with requests.Session() as s:
    s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')

http://www.jianshu.com/p/aa79b91a55af 这篇文章比较详细的讲解了cookies和session的一些关系

转载链接: https://blog.csdn.net/DDQ_DQ/article/details/78615218

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Spring MVC中的一些内置对象及其含义: 1. HttpServletRequest:表示HTTP请求对象,可以用于获取请求的URL、参数、头信息等。 2. HttpServletResponse:表示HTTP响应对象,可以用于设置响应的状态码、头信息、内容等。 3. HttpSession:表示会话对象,可以用于在不同请求之间共享数据。 4. Model:表示模型对象,用于存储数据并传递给视图进行渲染。 5. ModelAndView:表示模型和视图的组合对象,可以同时携带数据和视图信息。 6. ModelMap:是一个特殊的Model对象,用于存储数据并传递给视图进行渲染。 7. RedirectAttributes:用于在重定向时传递数据给目标页面。 8. Locale:表示当前请求的区域设置,可以用于国际化处理。 9. MultipartFile:表示上传的文件对象,可以用于处理文件上传。 10. ServletContext:表示Servlet上下文对象,可以用于获取Web应用的全局信息。 11. RequestContextHolder:用于获取当前请求的上下文信息。 12. SessionStatus:用于管理会话状态,可以用于标记会话已完成。 13. Principal:表示当前用户的身份信息。 14. Errors:表示数据绑定和验证的错误信息。 15. BindingResult:表示数据绑定和验证的结果信息。 16. UriComponentsBuilder:用于构建URL和URI。 17. HttpHeaders:表示HTTP请求或响应的头信息。 18. ResponseEntity:表示HTTP响应的实体对象,可以设置响应的状态码、头信息、内容等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值