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