I try use QNetworkAccessManager
to save server cookie like chrome browser, i follow some article and had write the follow demo.
Code:
from PyQt5.QtCore import *
from PyQt5.QtNetwork import *
class NetworkManager:
def __init__(self):
self.nam = QNetworkAccessManager()
self.nam.setAutoDeleteReplies(True)
self.nam.finished.connect(self.on_finished)
self.cookieJar = QNetworkCookieJar()
self.nam.setCookieJar(self.cookieJar)
def on_finished(self, reply: QNetworkReply):
if reply.error() == QNetworkReply.NoError:
data = reply.readAll()
cookies = reply.header(QNetworkRequest.SetCookieHeader)
if cookies is not None:
self.cookieJar.setCookiesFromUrl(cookies, reply.url())
print(self.nam.cookieJar().allCookies())
app = QCoreApplication([])
nm = NetworkManager()
url = 'sampleurl'
req = QNetworkRequest(QUrl(url))
nm.nam.post(req, b'name=cc&qq=123')
app.exec()
The issue is that i had save server cookie and try to request the same url or other url, i found the request header don't have set-cookie
header, is i use it a wrong way?