最近用Qt5.0.2做了一点和网络有关的东西,流程如下:
1.利用QNetworkAccessManage实例化一个对象network,然后执行network.get(request),这里的request已经用一个指定的QUrl初始化好;
2.根据finished()信号的返回结果,获得其头部信息,其中包括了来自服务器的“Set-Session"字段,内容格式一般是”SessionID=xxxxx; Path=/xxxx“
3.利用QNetworkCookie::parse()解析该字段得到一个QList<QNetworkCookie>对象,并将该对象里的所有元素通过QNetworkCookieJar类里的insertCookie()的方法插入到一个已经实例化的QNetworkCookieJar对象
4.调用方法network.setCookieJar()将之前的QNetworkCookieJar对象作为参数传进
5.此时再次调用network.get(request)
现在问题就出在这里的第五步,我利用抓包工具分析第五步发出去的包,发现即使是设置了cookiejar,里面也不存在cookie字段信息,所以每次服务器的返回信息里面总是存在Set-Cookie字段信息。现在比较疑惑的是按照如上步骤做是不是有什么遗漏的,为何在第四步设置好network的cookiejar后第五步发出去的包里面不会带cookie字段,希望各位帮忙解答。