Как использовать прокси для вызова API - PullRequest
0 голосов
/ 03 октября 2018

Я использую System.Net.Http.HttpClient для вызова некоторого API.

Он работает правильно в UWP

Сбой в WASM с ошибкой: «Операция не поддерживается наЭта платформа. "

Показ трассировки стека, это System.Net.WebProxy.CreateDefaultProxy (), который не работает.

Какой самый универсальный способ сделать вызов API?

1 Ответ

0 голосов
/ 04 октября 2018

В настоящее время лучший способ справиться с этим - установить для обработчика по умолчанию значение Uno WasmHttpHandler следующим образом:

var httpMessageHandler = Type
    .GetType("System.Net.Http.HttpClient, System.Net.Http")
    .GetField("GetHttpMessageHandler",
        BindingFlags.Static |
        BindingFlags.NonPublic
    );

httpMessageHandler.SetValue(
    null,
    (Func<HttpMessageHandler>)(() => new Uno.UI.Wasm.WasmHttpHandler())
);

Обратите внимание, что это не отменяет поведение по умолчанию HttpHandler, что означаетчто если вы используете его явно, вы получите ту же ошибку.

...