#qt #qt5 #imgur
Вопрос:
Я создал загрузчик в Qt, используя API Imgur (с base64). Однако у меня проблема в том, что, по-видимому, файлы PNG не принимаются, что крайне странно. Однако GIF и JPG действительно работают. Является ли это намеренным ограничением или есть что-то особенное, о чем следует помнить при загрузке файлов PNG?
Мой код должен быть правильным, тем не менее я его прилагаю.
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request(QUrl("https://api.imgur.com/3/image"));
request.setRawHeader("Authorization", "Client-ID <Here is the client ID>");
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QFile image ("C:/Users/pietr/Desktop/Testpicture.png");
if (!image.open(QIODevice::ReadOnly))
{
QMessageBox::warning(this, tr("Error while opening file"), tr("There was an while opening file %1.").arg(image.fileName()));
delete manager;
return;
}
QString imageBase64 = image.readAll().toBase64();
image.close();
qDebug() << "Image data:" << imageBase64;
QUrlQuery params;
params.addQueryItem("image", imageBase64);
params.addQueryItem("type", "base64");
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->post(request, params.query().toUtf8());
Выход:
{
"data":
{
"error":
{
"code":1003,
"message":"File type invalid (2)",
"type":"ImgurException",
"exception":[]
},
"request":"/3/image",
"method":"POST"
},
"success":false,
"status":400
}