gpt4 book ai didi

c++ - Youtube API 搜索使用 Qt C++ 返回 "c"错误

转载 作者:行者123 更新时间:2023-11-28 04:58:53 25 4
gpt4 key购买 nike

我正在使用带有 Qt 的 C++,我正在尝试使用 Youtube API 查找通过特定关键字搜索的 Youtube 视频。我已经有一个 API key 。

我的代码是:

void Youtube::searchVideos(QString keyword)
{

int maxResults = 5; //the maximum of search results we want shown

QString youtubeurl = "https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&q=" +
keyword +
"%203%27%203&key=" + QString(YOUTUBE_API_KEY) +
"&videoEmbeddable=true" +
"&maxResults=" + QString::number(maxResults);

QEventLoop loop;

QUrl url(youtubeurl);

if (_netManager == NULL)
{
_netManager = new QNetworkAccessManager(this);
QObject::connect(_netManager, SIGNAL(finished(QNetworkReply *)), this, SLOT(processReply(QNetworkReply *)));
}

QNetworkRequest request(url);

_reply = _netManager->get(request);

}

void Youtube::processReply(QNetworkReply * pReply)
{
QVariant statusCodeV = pReply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
QVariant redirectionTargetUrl = pReply->attribute(QNetworkRequest::RedirectionTargetAttribute);

QJsonObject results;

if (pReply->error() == QNetworkReply::NoError)
{

QByteArray message = pReply->readAll();

QString str = QString::fromUtf8(message.data(), message.size());
int statusCode = pReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();

qDebug() << QVariant(statusCode).toString();

QJsonDocument jsonResponse = QJsonDocument::fromJson(message);
results = jsonResponse.object();
qDebug() << "Youtube API works.";

}

else
{
qDebug() << "Error searching on Youtube : " << QString(pReply->error()).toUtf8();

}
}

输出是:在 Youtube 上搜索时出错:“c”

我也在 Javascript 中使用了相同的链接和 GET 方法,它工作正常,但我在 C++ 中总是遇到这个错误。

最佳答案

将“注释调试”的结果包装成一个简短、干净的答案:

  • 要打印错误,请使用pReply->errorString(),不要将错误代码(整数)转换为字符串
  • 这里真正的错误是在没有安装 openssl 的情况下使用了 https

解决方案:安装 openssl 1.0.*(Qt 5.9 不支持 1.1.*)。对于 Windows,可以在这里下载:https://slproweb.com/products/Win32OpenSSL.html

关于c++ - Youtube API 搜索使用 Qt C++ 返回 "c"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46539497/

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