gpt4 book ai didi

qt - 如何在 QtWebKit 中获取第一个重定向(301 或 302)事件

转载 作者:行者123 更新时间:2023-12-02 14:30:14 24 4
gpt4 key购买 nike

我们正在使用 QtWebKit 4.7,并想知道框架加载何时进行重定向。

目前,我们正在计算 QNetworkAccessManager 子类中的传出请求,我们会覆盖 createRequest。

这在大多数情况下都可以正常工作,但是当第一个响应是 301 或 302(重定向)时,它就会被吞没在某个地方。

我们只需通过以下方式请求一个网址:

QNetworkRequest request(QUrl("http://www.twitter.com")); // 301 to twitter.com
frame->load(request);

最佳答案

自己处理 QNetworkReply,从回复中获取状态代码并执行 QWebFrame::setcontent。

QNetworkRequest request(QUrl("http://www.twitter.com")); // 301 to twitter.com
connect (frame->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply*), this, SLOT(onFinished(QNetworkReply*));
frame->page()->networkAccessManager()->get(request);

[...]

void onFinished(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError) {
int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
switch (statusCode) {
case 301:
case 302:
case 307:
qDebug() << "redirected: " << reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
break;

case 200:
frame->setContent(reply->readAll());
break;
}
}
}

关于qt - 如何在 QtWebKit 中获取第一个重定向(301 或 302)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com