2016-05-25 24 views
0

Jsonのキーと値のペアに加えて、Windows.Web.Http.HttpClient PostAsyncを基本認証とmediatypeで設定する方法は?Windows.Web.Http.HttpClientを基本認証でPostAsyncを設定する方法++

どのようにこれを行うには良い文書や例が見つかりません。

これらの公式サイトでは、この問題を解決する方法についてはほとんどのドキュメントを提供します:感謝 https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.web.http.httpclient.aspx

ヘルプ!ありがとう!

答えて

1

私は私のために働いた解決策を見つけました:

 Dictionary<string, string> pairs = new Dictionary<string, string>(); 
     pairs.Add("client_id", Constants.CLIENT_ID); 
     pairs.Add("grant_type", "authorization_code"); 
     pairs.Add("code", code); 
     var formContent = new HttpFormUrlEncodedContent(pairs); 

     var base64Creds = Convert.ToBase64String(System.Text.UTF8Encoding.UTF8.GetBytes(string.Format("{0}:{1}", Constants.CLIENT_ID, Constants.CLIENT_SECRET))); 

     var httpFilter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter(); 
     httpFilter.CacheControl.ReadBehavior = Windows.Web.Http.Filters.HttpCacheReadBehavior.MostRecent; 
     var client = new HttpClient(httpFilter); 

     client.DefaultRequestHeaders.Authorization = new HttpCredentialsHeaderValue("Basic", base64Creds); 

     HttpResponseMessage response = await client.PostAsync(new Uri(Constants.GET_TOKEN_URL), formContent); 
     client.Dispose(); 
0

あなたはこの

HttpClient client = new HttpClient(); 
string jsonContent = JsonConvert.SerializeObject(YourObject); 
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AuthenticationTokenString);  
StringContent theContent = new StringContent(jsonContent, System.Text.Encoding.UTF8, "application/json"); 
HttpResponseMessage aResponse = await client.PostAsync(new Uri(UrlValue), theContent); 
string responseContent = await aResponse.Content.ReadAsStringAsync(); 
client.Dispose(); 

編集のような何かを試すことができます:あなたが使用したい場合は、上記のコードはSystem.Net.Http.HttpClient を使用している。しかしWindows.Web.Http.HttpClientチェックアウトthisリンク

+0

動作しません:このソリューションでは、新しいWindows.Web.Httpではなく古いSystem.Net.Httpが使用されます。 – henrikh

+0

編集をチェックしてください!役に立つかもしれない – AbsoluteSith

関連する問題