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