0

我正在使用 System.Net.Http.HttpClient 调用一些 API。

它在 UWP 中正常工作

它在 WASM 中失败并显示错误:“此平台不支持操作。”

堆栈跟踪显示这是失败的 System.Net.WebProxy.CreateDefaultProxy()。

最通用的 API 调用方式是什么?

4

1 回答 1

3

目前,处理此问题的最佳方法是将默认处理程序设置为 Uno's 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行为,这意味着如果您明确使用它,您将收到相同的错误。

于 2018-10-04T00:13:16.323 回答