Не удалось загрузить изображение png с помощью API Imgur (400)

#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
}