1
使用QOAuth2AuthorizationCodeFlow
使用谷歌的oauth2进行授权。授权成功以及使用GET
请求(例如,获取来自YouTube频道的视频列表)。 不过,虽然QNetworkAccessManager
为用户提供了一堆post
方法重载:如何使用QNetworkAuth将视频上传到Youtube
QNetworkReply * post(const QNetworkRequest &request, QIODevice *data)
QNetworkReply * post(const QNetworkRequest &request, const QByteArray &data)
QNetworkReply * post(const QNetworkRequest &request, QHttpMultiPart *multiPart)
QOAuth2AuthorizationCodeFlow
只有:
QNetworkReply *post(const QUrl &url, const QVariantMap ¶meters = QVariantMap());
可以很容易地利用追加QHttpMultiPart
& QHttpPart::setBodyDevice()
的文件。但我不确定如何使用QVariantMap
进行视频/文件上传。
此外,试图使用:QOAuth2AuthorizationCodeFlow::networkAccessManager()
访问底层网络管理器,但它提供了202响应代码GET
。并且,如果使用经过身份验证的url,则返回代码为200,但回复内容为空(readAll()返回空缓冲区)。不适用于POST
。
使用QT第二天,所以我可能会误解一些概念。感谢您的任何帮助&的想法。
很高兴有人问这个问题。 – Akiva
只是好奇你是否不介意为此提供完整的代码。作为感谢,我会反过来赠送一些声誉。由于缺少文档,我遇到了一些麻烦。 – Akiva
@Akiva的代码不是那么漂亮,但它确实为我上传了一个视频https://github.com/x4t3a/YoutubeUploader/blob/master/youtube_wrapper.cpp#L98 –