如何使用代理进行API调用

时间:2018-10-03 17:39:21

标签: uno-platform

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

它在UWP中正常工作

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

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

最普遍的API调用方式是什么?

1 个答案:

答案 0 :(得分:3)

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