Как использовать прокси для вызова API

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

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

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

Трассировка стека показывает, что это System.Net.WebProxy.CreateDefaultProxy(), что не удается.

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

1 ответ

Решение

В настоящее время лучший способ справиться с этим - установить обработчик по умолчанию в 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 поведение, что означает, что если вы используете его явно, вы получите ту же ошибку.

Другие вопросы по тегам