gSoap:如何在Qt中设置或更改客户端上的cookie?

时间:2012-01-19 06:46:09

标签: c++ qt gsoap

我在服务器上使用下一个代码进行授权,并使用cookie标识来获取其他服务方法。

TerminalControllerBinding soapObj;
soap_init1(soapObj.soap, SOAP_C_UTFSTRING);
soapObj.endpoint = "http://192.168.*.*/path/to/service";

ns1__getTemplatesResponse *response = new ns1__getTemplatesResponse;

std::string auth_res = "";
soapObj.ns1__auth("user", "password", auth_res);

QString sessid = QString::fromStdString(auth_res);

qDebug() << sessid;

soapObj.soap->cookies = soap_cookie(soapObj.soap, "sessid", sessid.toAscii().data(), ".");

服务器没有获取cookie“sessid”

1 个答案:

答案 0 :(得分:1)

我对你发布的代码感到困惑:你为ns1__getTemplatesResponse分配内存,然后做一些看似无关的东西;事实上你根本不再提及它。此外soap_cookie是一个结构,soap->cookies基本上是一个列表。因此,没有魔法可以将cookie传输到服务器。

我认为你想要的是soap_set_cookie。您可以在客户端cookie here上找到更多信息,但没有任何示例代码。然而,更有用的是server side文档(cookie的处理方式差别不大)。

另请注意,您需要使用-DWITH_COOKIES进行编译,或者如果您尚未在stdsoap.h中自行定义宏。