когда я отправить запрос сообщение для https://accounts.google.com/o/oauth2/token
получить ошибку 400Youtube API OAuth 2.0 на UWP ошибки 400
Это мой код
private async Task<string> PostAsync(string requestUriString, List<KeyValuePair<string, string>> content)
{
string contentString = "";
content.ForEach(kvp => contentString += WebUtility.UrlEncode(kvp.Key) + "=" + WebUtility.UrlEncode(kvp.Value) + "&");
contentString = contentString.Remove(contentString.Length - 1);
WebRequest webRequest = WebRequest.Create(requestUriString) as HttpWebRequest;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
TaskFactory taskFactory = new TaskFactory();
Task<Stream> requestTask = taskFactory.FromAsync(webRequest.BeginGetRequestStream, webRequest.EndGetRequestStream, null);
using (Stream requestStream = await requestTask)
{
using (StreamWriter streamWriter = new StreamWriter(requestStream))
{
streamWriter.Write(contentString);
streamWriter.Dispose();
}
requestStream.Dispose();
}
string responseString = null;
Task<WebResponse> responseTask = taskFactory.FromAsync(webRequest.BeginGetResponse, webRequest.EndGetResponse, null);
WebResponse webResponse = await responseTask;
using (Stream responseStream = webResponse.GetResponseStream())
{
using (StreamReader streamReader = new StreamReader(responseStream))
{
responseString = streamReader.ReadToEnd();
streamReader.Dispose();
}
responseStream.Dispose();
}
return responseString;
}
private async void WebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
if (webView.DocumentTitle.StartsWith("Success code="))
{
string autorizationCode = webView.DocumentTitle.Substring(13);
string responseString = await PostAsync("https://accounts.google.com/o/oauth2/token?",
new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("code",autorizationCode),
new KeyValuePair<string, string>("client_id","xxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com"),
new KeyValuePair<string, string>("client_secret","xxxxxxxxxxxxxx"),
new KeyValuePair<string, string>("redirect_uri","http://localhost/oauth2callback"),
new KeyValuePair<string, string>("grant_type","authorization_code")
}
);
MessageDialog dialog = new MessageDialog(responseString);
await dialog.ShowAsync();
}
}