我现在是用 QNetworkAccessManager 来做post。
整个设想流程是:在post之前先经过验证。验证通过了,下面每一次post都是使用验证时候的session来和服务端来进行保持会话。
问题是:
当server端加上session处理后,qt 就post不上去了。 就是保持不了验证时候的session。
解决办法实践:
1,获得验证时候的sessionid
- QByteArray value=reply->rawHeader("Set-Cookie");
- int index=value.indexOf(';');
- QByteArray list =value.mid(0,index);
- if(!list.isEmpty())
- {
- this->session_id=list;
- }
-
2,在每一次post时,加上sessionid
- if(!this->session_id.isEmpty())
- {
- QNetworkCookie cookie(QByteArray("Cookie"), this->session_id);
- QList<QNetworkCookie> cookies;
- cookies.push_back(cookie);
- //req.setHeader(QNetworkRequest::SetCookieHeader,cookie);
- req.setRawHeader(QByteArray("Cookie"), this->session_id);
- //req.setRawHeader("Cookie",this->session_id);
- }
结果通过visual sniffer发现,sessionid没有被发出去。
希望大家指导一下,谢谢