MainViewModel:
<SPAN class="kwd">public</SPAN><SPAN class="pln"> async </SPAN><SPAN class="typ">Task</SPAN><SPAN class="str"><string></SPAN> <SPAN class="typ">Httpclient</SPAN><SPAN class="pun">(</SPAN><SPAN class="kwd">string</SPAN><SPAN class="pln"> link</SPAN><SPAN class="pun">,</SPAN><SPAN class="kwd">string</SPAN><SPAN class="pln"> oauthToken</SPAN><SPAN class="pun">)</SPAN>
<SPAN class="pun">{</SPAN>
<SPAN class="typ">HttpClient</SPAN><SPAN class="pln"> client </SPAN><SPAN class="pun">=</SPAN> <SPAN class="kwd">new</SPAN> <SPAN class="typ">HttpClient</SPAN><SPAN class="pun">();</SPAN><SPAN class="pln">
client</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">DefaultRequestHeaders</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Authorization</SPAN> <SPAN class="pun">=</SPAN> <SPAN class="kwd">new</SPAN> <SPAN class="typ">System</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Net</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Http</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Headers</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">AuthenticationHeaderValue</SPAN><SPAN class="pun">(</SPAN><SPAN class="str">"Bearer"</SPAN><SPAN class="pun">,</SPAN><SPAN class="pln"> oauthToken</SPAN><SPAN class="pun">);</SPAN>
<SPAN class="typ">HttpResponseMessage</SPAN><SPAN class="pln"> response </SPAN><SPAN class="pun">=</SPAN><SPAN class="pln"> await client</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">PostAsync</SPAN><SPAN class="pun">(</SPAN><SPAN class="pln">link</SPAN><SPAN class="pun">,</SPAN><SPAN class="kwd">new</SPAN> <SPAN class="typ">StringContent</SPAN><SPAN class="pun">(</SPAN><SPAN class="str">""</SPAN><SPAN class="pun">));</SPAN><SPAN class="pln">
response</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Content</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Headers</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">ContentType</SPAN> <SPAN class="pun">=</SPAN> <SPAN class="kwd">new</SPAN> <SPAN class="typ">MediaTypeHeaderValue</SPAN><SPAN class="pun">(</SPAN><SPAN class="str">"application/json"</SPAN><SPAN class="pun">);</SPAN>
<SPAN class="kwd">return</SPAN><SPAN class="pln"> await response</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Content</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">ReadAsStringAsync</SPAN><SPAN class="pun">();</SPAN>
<SPAN class="pun">}</SPAN>
Get_account_ViewModel:
<SPAN class="kwd">public</SPAN> <SPAN class="kwd">class</SPAN> <SPAN class="typ">Get_Current_Account_ViewModel</SPAN>
<SPAN class="pun">{</SPAN>
<SPAN class="typ">MainViewModel</SPAN><SPAN class="pln"> mainViewModel </SPAN><SPAN class="pun">=</SPAN> <SPAN class="kwd">new</SPAN> <SPAN class="typ">MainViewModel</SPAN><SPAN class="pun">();</SPAN>
<SPAN class="kwd">public</SPAN><SPAN class="pln"> async </SPAN><SPAN class="typ">Task</SPAN><SPAN class="pun"><</SPAN><SPAN class="typ">Model</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Get_Current_Account</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">RootObject</SPAN><SPAN class="pun">></SPAN><SPAN class="pln"> get_current_account</SPAN><SPAN class="pun">(</SPAN><SPAN class="kwd">string</SPAN><SPAN class="pln"> _accessToken</SPAN><SPAN class="pun">)</SPAN>
<SPAN class="pun">{</SPAN>
<SPAN class="kwd">var</SPAN><SPAN class="pln"> query </SPAN><SPAN class="pun">=</SPAN><SPAN class="pln"> await mainViewModel</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Httpclient</SPAN><SPAN class="pun">(</SPAN><SPAN class="str">"https://api.dropboxapi.com/2/users/get_current_account?access_token=_accessToken"</SPAN><SPAN class="pun">,</SPAN><SPAN class="pln">_accessToken</SPAN><SPAN class="pun">);</SPAN>
<SPAN class="kwd">if</SPAN> <SPAN class="pun">(</SPAN><SPAN class="pln">query </SPAN><SPAN class="pun">!=</SPAN> <SPAN class="kwd">null</SPAN><SPAN class="pun">)</SPAN>
<SPAN class="pun">{</SPAN>
<SPAN class="kwd">var</SPAN><SPAN class="pln"> get_data </SPAN><SPAN class="pun">=</SPAN> <SPAN class="typ">JsonConvert</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">DeserializeObject</SPAN><SPAN class="pun"><</SPAN><SPAN class="typ">Model</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Get_Current_Account</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">RootObject</SPAN><SPAN class="pun">>(</SPAN><SPAN class="pln">query</SPAN><SPAN class="pun">);</SPAN>
<SPAN class="kwd">return</SPAN><SPAN class="pln"> get_data</SPAN><SPAN class="pun">;</SPAN>
<SPAN class="pun">}</SPAN>
<SPAN class="kwd">else</SPAN>
<SPAN class="kwd">return</SPAN> <SPAN class="kwd">null</SPAN><SPAN class="pun">;</SPAN>
<SPAN class="pun">}</SPAN>
I tried on two ways:
- the first way: I got a problem is
Error in call to API function "users/get_current_account": Unexpected URL params: "access_token" on Dropbox API
at
var query = await mainViewModel.Httpclient("https://api.dropboxapi.com/2/users/get_current_account?access_token=_accessToken",_accessToken);
- second way: Error in call to API function "users/get_current_account": Bad HTTP "Content-Type" header: "text/plain; charset=utf-8". Expecting one of "application/json", "application/json; charset=utf-8", "text/plain; charset=dropbox-cors-hack". when I remove ?access_token=_accessToken at var query.
- four way:
-
<SPAN class="typ">HttpResponseMessage</SPAN><SPAN class="pln"> response </SPAN><SPAN class="pun">=</SPAN><SPAN class="pln"> await client</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">PostAsync</SPAN><SPAN class="pun">(</SPAN><SPAN class="pln">
link</SPAN><SPAN class="pun">,</SPAN> <SPAN class="kwd">new</SPAN> <SPAN class="typ">StringContent</SPAN><SPAN class="pun">(</SPAN><SPAN class="str">""</SPAN><SPAN class="pun">,</SPAN> <SPAN class="typ">System</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Text</SPAN><SPAN class="pun">.</SPAN><SPAN class="typ">Encoding</SPAN><SPAN class="pun">.</SPAN><SPAN class="pln">UTF8</SPAN><SPAN class="pun">,</SPAN> <SPAN class="str">"application/json"</SPAN><SPAN class="pun">)); <SPAN class="comment-copy">Error in call to API function \"users/get_current_account\": request body: could not decode input as JSON</SPAN> –</SPAN>
Please everyone solve this problem. I can not fix it. thanks.