gpt4 book ai didi

c++ - 使用QNetworkAccessManager Investing.com的网站出现问题

转载 作者:行者123 更新时间:2023-12-02 10:27:43 29 4
gpt4 key购买 nike

我正在尝试使用QNetworkAccessManager从investing.com自动读取一些信息。我可以从其他站点上阅读,但是该站点提供了一些我想访问的网站管理员工具。
https://www.investing.com/webmaster-tools/
我使用在浏览器中有效的查询。
这是我的请求代码

class InvestingAPI: public QObject
{
Q_OBJECT

public:
InvestingAPI();
QueryTechnicals(QString Symbol, int TF1Minites);

signals:
// void NewTechnicalSummary(int Timeframe, QString Symbol, QString Summary);
private slots:
void onData(QNetworkReply *reply);
private:
QNetworkAccessManager qnam ;

};

InvestingAPI::InvestingAPI()
{
connect(&qnam,SIGNAL(完成(QNetworkReply *)),this,SLOT(onData(QNetworkReply *));
连接(&qnam,SIGNAL(加密(QNetworkReply *)),这个,插槽(onData(QNetworkReply *))
);
}

InvestingAPI::QueryTechnicals(QString Symbol, int TF1Minites)
{
QString Query;
Query = "http://ssltsw.forexprostools.com/index.php?timeframe=300&lang=1&forex=1&commodities=8830,8836,8831,8849,8833,8862,8832&indices=175,166,172,27,179,170,174&stocks=334,345,346,347,348,349,350&tabs=1,2,3,4%22%20width=%22317%22%20height=%22467%22%3E%3C/iframe%3E%3Cdiv%20class=%22poweredBy%22%20style=%22font-family:arial,helvetica,sans-serif;%20direction:ltr;%22%3E%3Cspan%20style=%22font-size:%2011px;color:%20&selectedTabId=QBS_1";

QNetworkRequest Request;
Request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
connect(&qnam,SIGNAL(finished(QNetworkReply*)),this,SLOT(onData(QNetworkReply*)));
Request.setUrl(QUrl(Query));

Request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");
qnam.get(Request);
}
我有 Activity
void InvestingAPI::onData(QNetworkReply *reply){
// find data type
// decode and return data to caller
if(reply->error() != QNetworkReply::NoError){
qDebug() << "Error";
qDebug() << reply->errorString();
}
QString html = QString::fromUtf8(reply->readAll());
qDebug() << html;
QString SubData;
}
我没有收到错误,但是得到的是空字符串而不是html响应。
请帮忙,因为我不知道为什么这在这里不起作用,但在浏览器中起作用。

最佳答案

默认情况下,Qt Network不像其他工具一样处理重定向,因此这就是为什么您得到一个空数据的原因(如果您选中“Location” header ,您将看到重定向的URL)。在这种情况下,将启用重定向:

Request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);

关于c++ - 使用QNetworkAccessManager Investing.com的网站出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63577032/

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