<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync in Dropbox API Support &amp; Feedback</title>
    <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/303168#M18322</link>
    <description>&lt;P&gt;Thanks Greg - I thought the Xamarin DropBox APi was a variant on the official but as it's not I'll ask over on the Xamarin forums.&lt;/P&gt;</description>
    <pubDate>Mon, 15 Oct 2018 20:29:24 GMT</pubDate>
    <dc:creator>nzmike</dc:creator>
    <dc:date>2018-10-15T20:29:24Z</dc:date>
    <item>
      <title>Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/302892#M18303</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have the following code in a static helper class which works perfectly in a Windows UWP app:&lt;/P&gt;&lt;P&gt;public static DropboxClient dbxClient { get; private set; }&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;public static async Task&amp;lt;string&amp;gt; DownloadFile(string filePath, string fileName, string accessToken)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string output = null;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dbxClient == null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbxClient = new DropboxClient(accessToken);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dbxClient != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var downloadResponse = await dbxClient.Files.DownloadAsync(filePath + fileName);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var content = await downloadResponse.GetContentAsStringAsync();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DebugInfo += $"{filePath} downloaded - revision {downloadResponse.Response.Rev}";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output = content;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("DownloadFile: DropBox client not authenticated");&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception = ex;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output = ex.Message;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;Now I want to convert the app I created in UWP to Android&amp;nbsp; so I copied it into my new Xamarin.Forms app and replaced the usual Dropbox.API NuGet package with Xamarin.DropBox.Api, but when I run the code I get this message:&lt;/P&gt;&lt;P&gt;Error in call to API function "files/download": Bad HTTP "Content-Type"&lt;BR /&gt;header: "application/x-www-form-urlencoded".&amp;nbsp; Expecting one of "text/plain", "text/plain; charset=utf-8", "application/octet-stream",&lt;BR /&gt;"application/octet-stream; charset=utf-8".&lt;/P&gt;&lt;P&gt;I have googled this and searched on this forum but (so far) can't find anything relevant - can someone please let me know what I'm doing wrong?&amp;nbsp; DropBoxClient seems to want a content-type (which is fair enough) but there does not seem to have any way to actually specify that from what I can see in the DropBoxClient properties and methods available.&lt;/P&gt;&lt;P&gt;&amp;nbsp;Thanks in advance for any help offered.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2019 09:09:53 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/302892#M18303</guid>
      <dc:creator>nzmike</dc:creator>
      <dc:date>2019-05-29T09:09:53Z</dc:date>
    </item>
    <item>
      <title>Re: Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/303120#M18315</link>
      <description>&lt;P&gt;The&amp;nbsp;Dropbox API does require one of a certain set of Content-Type values for download calls like this. The &lt;A href="https://www.nuget.org/packages/Dropbox.Api" target="_blank"&gt;official Dropbox.Api library&lt;/A&gt; (i.e., the&amp;nbsp;&lt;A href="https://github.com/dropbox/dropbox-sdk-dotnet" target="_blank"&gt;official&amp;nbsp;Dropbox API v2 .NET SDK&lt;/A&gt;) does automatically set a valid Content-Type, so you don't need to do that yourself when using it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It sounds like when you switch to Xamarin and &lt;A href="https://www.nuget.org/packages/Xamarin.Dropbox.Api" target="_blank"&gt;the Xamarin.Dropbox.Api library&lt;/A&gt;, something is overriding it and setting an incorrect Content-Type. I'm afraid we can't offer help with those though, as they're made/maintained by a third party. You may be better served contacting the Xamarin maintainers or asking on a Xamarin forum.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Oct 2018 17:51:58 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/303120#M18315</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2018-10-15T17:51:58Z</dc:date>
    </item>
    <item>
      <title>Re: Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/303168#M18322</link>
      <description>&lt;P&gt;Thanks Greg - I thought the Xamarin DropBox APi was a variant on the official but as it's not I'll ask over on the Xamarin forums.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Oct 2018 20:29:24 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/303168#M18322</guid>
      <dc:creator>nzmike</dc:creator>
      <dc:date>2018-10-15T20:29:24Z</dc:date>
    </item>
    <item>
      <title>Re: Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/304043#M18363</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the same problem. did you solve it?.&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;</description>
      <pubDate>Fri, 19 Oct 2018 10:36:06 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/304043#M18363</guid>
      <dc:creator>luismiguelsi</dc:creator>
      <dc:date>2018-10-19T10:36:06Z</dc:date>
    </item>
    <item>
      <title>Re: Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/307300#M18490</link>
      <description>&lt;P&gt;No, I still have not fixed this but I have not really been looking at it due to other projects.&amp;nbsp; However, I am now back trying to work out why I get his error - but so far no luck.&lt;/P&gt;&lt;P&gt;If I find out i will post here - but if you have solved the problem could you please post your answer here?&lt;/P&gt;</description>
      <pubDate>Fri, 02 Nov 2018 21:10:51 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/307300#M18490</guid>
      <dc:creator>nzmike</dc:creator>
      <dc:date>2018-11-02T21:10:51Z</dc:date>
    </item>
    <item>
      <title>Re: Xamarin.DropBox.APi - HTTP 400 (Bad request) on DownloadAsync</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/429676#M22816</link>
      <description>&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I too was stuck at this problem, as i wanted a free data storage and retreval for my Xamarin.forms App.&lt;/P&gt;&lt;P&gt;Here are some of the points that i understood with this problem:&lt;/P&gt;&lt;P&gt;1. Xamarin is not yet supported by DropBox yet.&lt;/P&gt;&lt;P&gt;2. The above problem is in the autosetting done by xamarin frame work at the backend.&lt;/P&gt;&lt;P&gt;Ans:&lt;/P&gt;&lt;P&gt;Right click on android project of your solution &amp;gt; Select Properties&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="DropBox.png" style="width: 999px;"&gt;&lt;img src="https://www.dropboxforum.com/t5/image/serverpage/image-id/16399i98F795E20A7308EA/image-size/large?v=v2&amp;amp;px=999" role="button" title="DropBox.png" alt="DropBox.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Goto Android Options&amp;gt; Select Advance Properties&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Drop2.PNG" style="width: 999px;"&gt;&lt;img src="https://www.dropboxforum.com/t5/image/serverpage/image-id/16400i516D27FFE318DFD7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Drop2.PNG" alt="Drop2.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Select HttpClient implementation as Default ( this would be by default set to Android).&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="DropBox.png" style="width: 653px;"&gt;&lt;img src="https://www.dropboxforum.com/t5/image/serverpage/image-id/16401iE88B47B3FD71407D/image-size/large?v=v2&amp;amp;px=999" role="button" title="DropBox.png" alt="DropBox.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and Select&amp;nbsp; SSL/TLS implementation as Native TLS 1.2+.&lt;/P&gt;&lt;P&gt;Now compile and run your Xamarin.Forms application, it should work like a charm.&lt;/P&gt;&lt;P&gt;Refer this link as to understand why this changes were done &lt;A href="https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/http-stack?tabs=windows" target="_self"&gt;Here&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2020 03:09:55 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Xamarin-DropBox-APi-HTTP-400-Bad-request-on-DownloadAsync/m-p/429676#M22816</guid>
      <dc:creator>AwesomeHacks</dc:creator>
      <dc:date>2020-06-15T03:09:55Z</dc:date>
    </item>
  </channel>
</rss>

