QNetworkAccessManager保存cookie不工作?

2024-05-16 11:11:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用QNetworkAccessManager像chrome浏览器一样保存服务器cookie,我跟随一些文章并编写了下面的演示

代码:

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()

问题是我保存了服务器cookie并尝试请求相同的url或其他url,我发现请求头没有set-cookie头,我是否使用了错误的方法


Tags: fromimportself服务器urlcookiedefreply