Итак, я тестирую универсальные приложения и достигла следующего:
У меня есть приложение на планшете Windows, которое получает данные с сервера.
Сервер защищен сертификатом (SSL)
У меня есть этот код, он отлично работает в простом приложении Магазина Windows и в проекте универсального приложения для планшета, но не на телефоне.
async public static Task<string> GetDataFromServer()
{
try
{
HttpClientHandler aHandler = new HttpClientHandler();
aHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
HttpClient aClient = new HttpClient(aHandler);
aClient.DefaultRequestHeaders.ExpectContinue = false;
aClient.DefaultRequestHeaders.MaxForwards = 3;
Uri requestUri = new Uri("MYURL");
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUri);
var result = await aClient.GetAsync(requestUri, HttpCompletionOption.ResponseContentRead);
var responseHeader = result.Headers;
var responseBody = await result.Content.ReadAsStringAsync();
return responseBody;
}
catch (Exception e)
{
return "";
}
}
Все необходимые возможности указаны в манифесте:
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="sharedUserCertificates" />
<Capability Name="privateNetworkClientServer" />
<Capability Name="internetClientServer" />
</Capabilities>
<Extensions>
<Extension Category="windows.certificates">
<Certificates>
<Certificate StoreName="Root" Content="Assets\CoolCertificate.cer" />
</Certificates>
</Extension>
Phone code - doesn't crash, no errors or warnings - just blank result.
Код: {StatusCode: 404, ReasonPhrase: 'Not Found', версия: 1.1, Content: System.Net.Http.StreamContent, Headers: {Content-Length: 0}} И никаких уведомлений для пользователю нравится в WinRT: