gpt4 book ai didi

c++ - 如何使用 Qt 获取重定向页面的 html 代码?

转载 作者:搜寻专家 更新时间:2023-10-31 01:59:54 25 4
gpt4 key购买 nike

我正在尝试使用 Qt 从以下 url 下载 html 代码:

http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=nucleotide&cmd=search&term=AB100362

此 url 将重定向到

www.ncbi.nlm.nih.gov/nuccore/27884304

我尝试按照以下方式进行操作,但我什么也得不到。它适用于某些网页,例如 www.google.com,但不适用于此 NCBI 页面。有什么办法可以得到这个页面吗??

QNetworkReply::NetworkError downloadURL(const QUrl &url, QByteArray &data)
{
QNetworkAccessManager manager;
QNetworkRequest request(url);
QNetworkReply *reply = manager.get(request);

QEventLoop loop;
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();

if (reply->error() != QNetworkReply::NoError)
{
return reply->error();
}
data = reply->readAll();
delete reply;
return QNetworkReply::NoError;
}

void GetGi()
{
int pos;

QString sGetFromURL = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi";
QUrl url(sGetFromURL);
url.addQueryItem("db", "nucleotide");
url.addQueryItem("cmd", "search");
url.addQueryItem("term", "AB100362");

QByteArray InfoNCBI;
int errorCode = downloadURL(url, InfoNCBI);
if (errorCode != 0 )
{
QMessageBox::about(0,tr("Internet Error "), tr("Internet Error %1: Failed to connect to NCBI.\t\nPlease check your internect connection.").arg(errorCode));
return "ERROR";
}

}

最佳答案

该页面似乎有重定向。

来自 4.6 的 Qt 文档:

Note: When the HTTP protocol returns a redirect no error will be reported. You can check if there is a redirect with the QNetworkRequest::RedirectionTargetAttribute attribute.

关于c++ - 如何使用 Qt 获取重定向页面的 html 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572985/

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