除了 Json 中的键/值对之外,如何设置具有基本授权和媒体类型的 Windows.Web.Http.HttpClient PostAsync?
我找不到任何关于如何执行此操作的好的文档或示例。
这些官方网站提供的有关如何解决此问题的文档非常少: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.web.http.httpclient.aspx
感谢帮助!谢谢!
最佳答案
我找到了一个适合我的解决方案:
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();
关于httpclient - 如何设置具有基本授权的 Windows.Web.Http.HttpClient PostAsync++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37435318/