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
deebee_it
6 years agoHelpful | Level 5
Error in call to API function "files/list_folder": request body: could not decode input as JSON
Good morning, I do this request with Arduino: client.print(String("POST /2/files/list_folder HTTP/1.1\r\n") + "Host: api.dropboxapi.com" + "User-Agent: ESP8266/Ard...
- 5 years ago
FOUND!
I used static IP:162.125.5.7to access the server.
Probably Drobbox changed the IP a few days ago.
Now I switched to
api.dropboxapi.comand everything works like a charm.Thank you for the support! :)
Greg-DB
6 years agoDropbox Staff
The /2/files/list_folder endpoint is an "RPC"-style endpoint, meaning it expects the parameters in the request body (not in a request header).
Please move your parameters to the request body instead of the "Dropbox-API-Arg" header and try again. (The "Dropbox-API-Arg" header is only used for content-upload and content-download -style endpoints.)
- deebee_it5 years agoHelpful | Level 5
Good morning.
I go right with this call for about 1 year:
request = String("POST /2/files/list_folder HTTP/1.1") + "\r\n" + "Host: api.dropboxapi.com" + "\r\n" + "User-Agent: ESP8266/Arduino_blabla"\r\n" + "Authorization: Bearer MYTOKENxxxxx\r\n" + "Accept: */*" + "\r\n" + "Content-Type: application/json; charset=utf-8" + "\r\n" + "Content-Length: " + request_data.length() + "\r\n\r\n" + request_data ;
With this request_data:request_data = "{\"path\":\"" + MYPATH+ "\"}";
Now, days ago I started getting this error:
Error (4xx)We can't find the page you're looking for.
So, probably some logic is changed serverside...
May you please tell me what do I need to change in my API call?
Thank you.- Здравко5 years agoLegendary | Level 20
Hi deebee_it,
You haven't mentioned what is the exact "MYPATH".
First: Are you sure the path, you are referring to, exists?
Second: You are relying on utf-8 encoding. Take in mind that Dropbox interpret all JSON input as a ASCII string, the encoding set is ignored! If you are using some simbol(s) outside ASCII set, make sure they are JSON-encoded (\uXXXX, where XXXX is hexdecimal unicode code point).
PS: By the way, you have put in your expression too many, meaningless string additions. Better do some of them join to each other (for example: "Host: api.dropboxapi.com" + "\r\n" could become "Host: api.dropboxapi.com\r\n") and remove the pluses between literals string on different lines (they gonna concatente to each other at compile time). Use pluses only where needed. 😉 In such a way lot of resources gonna be saved and the application speeds up.
- Greg-DB5 years agoDropbox Staff
deebee_it Based on the output you shared, it seems like the Dropbox servers weren't able to recognize your HTTP request as a valid API call. As Здравко said, it may be helpful to know what your 'MYPATH' value is. Can you print out the entire HTTP request (redacting the access token) so we can see what may not be formatted correctly?
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,882 PostsLatest Activity: 2 hours agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!