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

matt-42's avatar
matt-42
Explorer | Level 3
8 years ago

The Dropbox API V2 not compatible with React Native

I am not able to use the filesUpload endpoint with react native.

Simply because it is not possible with React Native to set the content type to one of the 'Content-Type' header accepted by the API. I get the following error: 

 

Error in call to API function "files/upload": Bad HTTP "Content-Type" header: "application/octet-stream; charset=utf-8".  Expecting one of "application/octet-stream", "text/plain; charset=dropbox-cors-hack

 

 

 

Is there any workaround ?

 

I'm not alone with this problem:

https://github.com/square/okhttp/issues/3081

https://github.com/square/okhttp/blob/master/okhttp/src/main/java/okhttp3/RequestBody.java#L53

https://github.com/facebook/react-native/issues/14445

 

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff
    Thanks for the post. I don't have a workaround to offer on our side unfortunately, but I'm raising this with the engineering team to see if they can change that behavior. I can't make any promises though.
    • Laurent22's avatar
      Laurent22
      Explorer | Level 4
      Hello, have the engineering team had the opportunity to look into this bug? This is unfortunately still an issue with React Native and it means it's not possible to create apps that support Dropbox (see the GitHub issue there - https://github.com/facebook/react-native/issues/14445 ) Any chance it is going to be fixed on the Dropbox side?
  • tsoltermann's avatar
    tsoltermann
    New member | Level 2

    I have the same issue and after some hours fiddling around I was able to fix workaround it. I'm uploading a JSON file to a dropbox account and i used a TextEncoder like this:

     

     

    var myFile_Encoded = new encoding.TextEncoder().encode(JSON.stringify(myFile));
    dbx.filesUpload({
      path: DBX_FILEPATH,
      contents: myFile_Encoded,
      mode: 'overwrite',
    });

      

    This seemed to do the trick and it even worked with multibyte characters that require UTF-8. e.g. ä, ö, ü.
     
    Don't know whether that helps you.
     
    regards, Tobias

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,882 PostsLatest Activity: 3 years ago
325 Following

If 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!