void AccessManager::setRawCookie(const QByteArray &rawCookie, const QUrl &url) { QNetworkCookie cookie(rawCookie.left(rawCookie.indexOf('=')), rawCookie.mid(rawCookie.indexOf('=')+1)); qDebug() << Q_FUNC_INFO << cookie.name() << cookie.value(); QList<QNetworkCookie> cookieList; cookieList.append(cookie); QNetworkCookieJar *jar = cookieJar(); jar->setCookiesFromUrl(cookieList, url); }
void testCorrectHttpHeader() { HttpServerThread server(countryResponse(), HttpServerThread::Public); KDSoapClientInterface client(server.endPoint(), countryMessageNamespace()); KDSoapAuthentication auth; auth.setUser(QLatin1String("kdab")); auth.setPassword(QLatin1String("unused")); client.setAuthentication(auth); // unused... QNetworkCookieJar myJar; QList<QNetworkCookie> myCookies; myCookies.append(QNetworkCookie("biscuits", "are good")); myJar.setCookiesFromUrl(myCookies, QUrl(server.endPoint())); client.setCookieJar(&myJar); QByteArray expectedRequestXml = expectedCountryRequest(); client.setSoapVersion(KDSoapClientInterface::SOAP1_1); { KDSoapMessage ret = client.call(QLatin1String("getEmployeeCountry"), countryMessage()); // Check what we sent QVERIFY(xmlBufferCompare(server.receivedData(), expectedRequestXml)); QVERIFY(!ret.isFault()); QCOMPARE(server.header("Content-Type").constData(), "text/xml;charset=utf-8"); QCOMPARE(server.header("SoapAction").constData(), "\"http://www.kdab.com/xml/MyWsdl/getEmployeeCountry\""); #if QT_VERSION >= 0x040800 QCOMPARE(server.header("Cookie").constData(), "biscuits=are good"); #elif QT_VERSION >= 0x040700 QCOMPARE(server.header("Cookie").constData(), "biscuits=\"are good\""); #endif QCOMPARE(ret.arguments().child(QLatin1String("employeeCountry")).value().toString(), QString::fromLatin1("France")); } client.setSoapVersion(KDSoapClientInterface::SOAP1_2); { KDSoapMessage ret = client.call(QLatin1String("getEmployeeCountry"), countryMessage()); // Check what we sent QByteArray expectedRequestXml12 = expectedRequestXml; expectedRequestXml12.replace("http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/2003/05/soap-envelope"); expectedRequestXml12.replace("http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/2003/05/soap-encoding"); QVERIFY(xmlBufferCompare(server.receivedData(), expectedRequestXml12)); QVERIFY(!ret.isFault()); QCOMPARE(server.header("Content-Type").constData(), "application/soap+xml;charset=utf-8;action=http://www.kdab.com/xml/MyWsdl/getEmployeeCountry"); QCOMPARE(ret.arguments().child(QLatin1String("employeeCountry")).value().toString(), QString::fromLatin1("France")); #if QT_VERSION >= 0x040800 QCOMPARE(server.header("Cookie").constData(), "biscuits=are good"); #elif QT_VERSION >= 0x040700 QCOMPARE(server.header("Cookie").constData(), "biscuits=\"are good\""); #endif } }
void QNetworkReplyImplPrivate::metaDataChanged() { Q_Q(QNetworkReplyImpl); // do we have cookies? if (cookedHeaders.contains(QNetworkRequest::SetCookieHeader) && !manager.isNull()) { QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(cookedHeaders.value(QNetworkRequest::SetCookieHeader)); QNetworkCookieJar *jar = manager->cookieJar(); if (jar) jar->setCookiesFromUrl(cookies, url); } emit q->metaDataChanged(); }
void setCookies(Document* document, const KURL& url, const KURL& policyURL, const String& value) { QUrl u(url); QUrl p(policyURL); #if QT_VERSION >= 0x040400 QNetworkCookieJar* jar = cookieJar(document); if (!jar) return; QList<QNetworkCookie> cookies = QNetworkCookie::parseCookies(QString(value).toAscii()); jar->setCookiesFromUrl(cookies, p); #else QCookieJar::cookieJar()->setCookies(u, p, (QString)value); #endif }
InfoExtractor::InfoExtractor(QObject *parent) : QObject(parent), m_queue(), m_url(), m_replyTimer(new QTimer(this)), m_accessManager(new QNetworkAccessManager(this)), m_reply(NULL) { //Définition du cookie pour avoir la page en anglais QNetworkCookieJar *jar = new QNetworkCookieJar(this); QNetworkCookie cookie("l", "en"); QList<QNetworkCookie> liste; liste << cookie; jar->setCookiesFromUrl(liste, MEGAUPLOAD); m_accessManager->setCookieJar(jar); m_replyTimer->setSingleShot(true); m_replyTimer->setInterval(INFO_EXTRACTION_TIMEOUT); connect(m_replyTimer, SIGNAL(timeout()), this, SLOT(replyTimeout())); }
void QNetworkReplyImplPrivate::metaDataChanged() { Q_Q(QNetworkReplyImpl); // 1. do we have cookies? // 2. are we allowed to set them? if (cookedHeaders.contains(QNetworkRequest::SetCookieHeader) && !manager.isNull() && (static_cast<QNetworkRequest::LoadControl> (request.attribute(QNetworkRequest::CookieSaveControlAttribute, QNetworkRequest::Automatic).toInt()) == QNetworkRequest::Automatic)) { QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(cookedHeaders.value(QNetworkRequest::SetCookieHeader)); QNetworkCookieJar *jar = manager->cookieJar(); if (jar) jar->setCookiesFromUrl(cookies, url); } emit q->metaDataChanged(); }
void setCookies(Document* document, const KURL& url, const KURL& policyURL, const String& value) { QUrl u(url); QUrl p(policyURL); #if QT_VERSION >= 0x040400 QNetworkCookieJar* jar = cookieJar(document); if (!jar) return; QList<QNetworkCookie> cookies = QNetworkCookie::parseCookies(QString(value).toAscii()); #if QT_VERSION >= 0x040500 QList<QNetworkCookie>::Iterator it = cookies.begin(); while (it != cookies.end()) { if (it->isHttpOnly()) it = cookies.erase(it); else ++it; } #endif jar->setCookiesFromUrl(cookies, p); #else QCookieJar::cookieJar()->setCookies(u, p, (QString)value); #endif }