protected async virtual Task <AuthorizationToken> ProcessAuthorizationTokenResponseAsync(HttpResponseMessage result) { var data = await result.Content.ReadAsStringAsync(); if (result.Content.Headers.ContentType.MediaType.Equals("application/json")) { // json from body return(AuthorizationToken.FromJson(data)); } else { // form-url-encoded from body var values = HttpUtility.ParseQueryString(data); return(AuthorizationToken.FromCollection(values)); } }