You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

AndreyStrukov's avatar
AndreyStrukov
Helpful | Level 5
6 years ago

Request body could not decode input as JSON

Hello!

The follow code (qt c++)

QUrl url;
    url.setScheme("https");
    url.setHost("api.dropboxapi.com");
    url.setPath("/2/file_requests/list_v2");

    QUrlQuery params;
    params.addQueryItem("limit", "1000");
    QByteArray qb_params;
    qb_params.append(params.toString(QUrl::FullyEncoded));

    if(checkUrl(url)){
        QNetworkRequest request;    // 
        request.setUrl(url);

        QByteArray auth;
        auth.append(OAuth_);
        auth.prepend("Bearer ");
        request.setRawHeader("Authorization", auth);
        request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");

        manager->post(request, qb_params);      // 
    }

got an error:

"Error transferring https://api.dropboxapi.com/2/file_requests/list_v2 - server replied: Bad Request"
"Error in call to API function \"file_requests/list:2\": request body: could not decode input as JSON"

What's wrong?

  • Hi AndreyStrukov,

    Can you clarify, what you really ask? :thinking: In the error message is clearly stated: "could not decode input as JSON"!

    If you take a look on list_v2 documentation, can be seen that parameters have to be in JSON format. Where you encode your parameter ("limit") in JSON? Instead, you use 'QUrlQuery' class, which functionality mimics classic HTML form encoding (not JSON)! :wink:

    Hope this gives some direction.

  • Здравко's avatar
    Здравко
    Legendary | Level 20

    Hi AndreyStrukov,

    Can you clarify, what you really ask? :thinking: In the error message is clearly stated: "could not decode input as JSON"!

    If you take a look on list_v2 documentation, can be seen that parameters have to be in JSON format. Where you encode your parameter ("limit") in JSON? Instead, you use 'QUrlQuery' class, which functionality mimics classic HTML form encoding (not JSON)! :wink:

    Hope this gives some direction.