1

Так что я тестирование универсальных приложений и достиг этого:HttpClient в Windows Phone 8.1 Универсального приложении

У меня есть приложение на Windows Tablet, который получает данные от сервера.

Сервер защищен с сертификатом 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> 

Телефонный код - не сбой, никаких ошибок или предупреждений - просто пустой результат.

Код: {StatusCode: 404, ReasonPhrase: 'Not Found', версия: 1.1, Содержание: System.Net.Http.StreamContent, заголовки: {Content-Length: 0}} И не уведомление на пользователь как в WinRT:

enter image description here

+0

Что такое код ответа вы получите в Windows Phone? –

+0

{StatusCode: 404, ReasonPhrase: 'Not Found', Версия: 1.1, Содержимое: System.Net.Http.StreamContent, Заголовки: {Content-Length: 0}} – Cheese

+0

Похоже, что он не может подключиться к сервер. Если вы попытаетесь использовать другой URI, это сработает? Вы уверены, что это учетная запись? – kiewic

ответ

0

Пожалуйста, используйте aHandler.UseDefaultCredentials= true; свойства и попробовать once.hope, которые могут решить эту проблему?

+0

Я попробую этот понедельник – Cheese

+0

Нет, это не помогло – Cheese

0

Обратите внимание, что в Windows Phone 8.1 есть два класса HttpClient. Один находится внутри пространства имен System.Net.Http и другого пространства имен Windows.Web.Http.

Вы хотите использовать его в Windows.Web.Http.

+0

Дело в том, что этот код находится в общем проекте универсального приложения - это означает, что он использует те же пространства имен для обоих – Cheese

+0

Оба проекта Windows Phone и Windows поддерживают Windows.Web .Http класс. Вы должны использовать его в проекте Shared. – superkinhluan

0

Надеюсь, у вас есть сертификат, который вам нужно использовать в качестве PFX. В этом случае, пожалуйста, обратитесь к моему ответу в ссылке

Client Certificates Windows Phone 8.1

+0

спасибо, я попробую это – Cheese

Смежные вопросы