2016-07-22 1 views
0

На UWP клиента HttpClient игнорировать SSL можно использовать HttpBaseProtocolFilter, какOData на UWP Клиент игнорировать SSL

var filter = new HttpBaseProtocolFilter(); 
filter.CacheControl.ReadBehavior = HttpCacheReadBehavior.MostRecent; 
filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.Expired); 
filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.Untrusted); 
filter.IgnorableServerCertificateErrors.Add(ChainValidationResult.InvalidName); 

Windows.Web.Http.HttpClient webhttpClient = new Windows.Web.Http.HttpClient(filter); 

Но, как я могу использовать OData на UWP клиента и игнорировать SSL?

Uri baseUri = new Uri(baseUriStr); 
Container container = new Container(baseUri); 

Большое спасибо.

ответ

0

Потреблять службы OData в UWP приложение, мы можем использовать обходной путь в этом вопросе: How to use WCF services in Windows 10 Universal App

  1. Создать 8.1 Portable библиотеку классов для Windows и изменить Target для Окна 8,1 enter image description here

  2. Добавить ссылку на обслуживание в этом PCL enter image description here

  3. Добавить ссылку на PCL в UWP приложение

  4. обслуживания вызовов, как это:

    static void DisplayProduct(ClassLibrary2.ServiceReference1.Product product) 
    { 
        Debug.WriteLine("{0} {1} {2}", product.Name, product.Price, product.Category); 
    } 
    
    // Get an entire entity set. 
    static async void ListAllProducts(ClassLibrary2.ServiceReference1.Container container) 
    { 
        var dsQuery = container.Products; 
    
        var tf = new TaskFactory<IEnumerable<ClassLibrary2.ServiceReference1.Product>>(); 
        var list = (await tf.FromAsync(dsQuery.BeginExecute(null, null), 
               iar => dsQuery.EndExecute(iar))).ToList(); 
        foreach (var p in list) 
        { 
         DisplayProduct(p); 
        } 
    } 
    
    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
        Uri uri = new Uri("http://localhost:18441/odata"); 
        var container = new ClassLibrary2.ServiceReference1.Container(uri); 
    
        ListAllProducts(container); 
    } 
    

Я создал службу тестирования OData следуя этому документу: Creating an OData v3 Endpoint with Web API 2

Check мой заполненный образец здесь:Github Link