LibQQt系列之十三《QQtWebAccessManager》

简介

QQtWebAccessManager主要用于管理http session和cookie,
管理session是QQtWebAccessManager独特添加的功能,
管理cookie是QNetworkAccessManager自带的功能。

使用方法

QQtWebAccessManager的通信过程包括 用户设置request,调用session相关的request,处理session相关的response,在response里处理下带cookie的问题等以上过程。
在response函数里,这个函数只有一个,关联finish信号,里面包含很多session的返回,用户自行处理有用的数据。+cookie

包含的组件

  • QQtWebAccessManager
    他主要承担的作用是管理Session。
    这个主要类继承QNetworkAccessManager,封装一层,函数调用不再返回QNetworkReply而是返回QQtWebAccessSession。
  • QQtWebAccessCookieJar
    顾名思义,这个类用于设置cookie组。这个类可以为多个url保存cookie组,功能强大。
  • QQtWebAccessSession
    这个是一次http请求的会话。

讲讲cookie

一般是启动的时候,发一个请求过去,或许带一个无用的cookie,或许不带,一般不带。
服务器会发回一个cookie,这个有用持续的使用这个cookie,本地QQtWebAccessManager自动存到cookieJar。
在以下步骤,
服务器会根据会话的组织规律的更换cookie,保存到这个本地的持续cookieJar里就行了,QQtWebAccessManager自动保存。
每次发射新请求的时候,带上这个刚刚保存的cookie。
其实,多数时候用户不必关心cookie,在QQtWebAccessManager里面自己保存着就好了。
需要注意的是携带cookie的请求的类型,有的是get有的是post都有可能的。
但是,当服务器约定客户端在请求中使用了用户当时设置的pair,用cookie加在request里,这个时候用户就需要从QQtWebAccessManager获取cookie,把新加的加进去。
用户不必要处理每个request的cookie,只需要处理QQtWebAccessManager的cookieJar里的就行了。
只要服务器重视这个cookie,那么肯定正常使用的。
注意:cookie都是和请求链接关联的。
一般服务器把很多请求都和一个相同的cookie联系,也有的服务器会把cookie和每个请求都不同的联系,这个随意,前边这种简单实用,会话组织思路清晰,目的明确。

你可能感兴趣的:(Qt,QQt)