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 –