Любая идея, как вводить заголовки OAuth в PlayReadyLicenseAcquisitionServiceRequest, чтобы они включались в BeginServiceRequest()? Я не могу использовать строку запроса URL-адреса лицензии или вставлять токен OAuth в тело; он должен находиться в заголовке HTTP-запроса на получение лицензии.OAuth in PlayReady Получение лицензии в UWP
0
A
ответ
0
Я нашел большой образец кода здесь:
https://www.eyecatch.no/blog/using-playready-and-smooth-streaming-in-a-windows-10-uwp-app/
, но это был волшебный соус ниже (с моим добавлением заголовка):
public static async Task<bool> RequestLicenseManual(PlayReadyLicenseAcquisitionServiceRequest request, params KeyValuePair<string, object>[] headers)
{
Debug.WriteLine("ProtectionManager PlayReady Manual License Request in progress");
try
{
var r = request.GenerateManualEnablingChallenge();
var content = new ByteArrayContent(r.GetMessageBody());
foreach (var header in r.MessageHeaders.Where(x => x.Value != null))
{
if (header.Key.Equals("Content-Type", StringComparison.OrdinalIgnoreCase))
{
content.Headers.ContentType = MediaTypeHeaderValue.Parse(header.Value.ToString());
}
else
{
content.Headers.Add(header.Key, header.Value.ToString());
}
}
var msg = new HttpRequestMessage(HttpMethod.Post, r.Uri) { Content = content };
foreach (var header in headers)
{
msg.Headers.Add(header.Key, header.Value.ToString());
}
Debug.WriteLine("Requesting license from {0} with custom data {1}", msg.RequestUri, await msg.Content.ReadAsStringAsync());
var client = new HttpClient();
var response = await client.SendAsync(msg);
if (response.IsSuccessStatusCode)
{
request.ProcessManualEnablingResponse(await response.Content.ReadAsByteArrayAsync());
}
else
{
Debug.WriteLine("ProtectionManager PlayReady License Request failed: " + await response.Content.ReadAsStringAsync());
return false;
}
}
catch (Exception ex)
{
Debug.WriteLine("ProtectionManager PlayReady License Request failed: " + ex.Message);
return false;
}
Debug.WriteLine("ProtectionManager PlayReady License Request successfull");
return true;
}
Можете ли вы сказать мне, какая версия OAuth вас используют? –
@MikeMa. Это OAuth 1.0, и у меня уже подготовлен заголовок, но я просто не могу понять, как ввести его в запрос лицензии. Если не существует совершенно другого подхода к OAuth, мне не хватает. – Sean