不支持 WebClient

Isa*_*aac 2 blazor

尝试WebClient在 Blazor 项目中使用。

得到以下错误:

blazor.webassembly.js:1

WASM: System.Net.WebException: An exception occurred during a WebClient request.
Run Code Online (Sandbox Code Playgroud)
System.PlatformNotSupportedException: Operation is not supported on this platform.
Run Code Online (Sandbox Code Playgroud)

如何在 Blazor 中进行 API/网络调用?

Isa*_*aac 5

Blazor 不支持 WebClient。您应该改用 HttpClient。在 Blazor 客户端 HttpClient 由框架作为服务提供;因此,您可以将其注入到您的组件或普通类中。在服务器端 Blazor 中缺少此优惠,您应该自己创建和配置 HttpClient。您也可以使用 IHttpClientFactory 来提供 HttpClient,这是更可取的。

注意:WebClient 不能在浏览器(客户端 Blazor)上使用,因为它是相对较旧的技术,没有理由将其适配到浏览器上使用。您可能认为这是可能的,因为 HttpClient 可以在浏览器上运行,但在这里澄清一下,当您在浏览器上使用 HttpClient 时,实际上并没有使用实际的 HttpClient,它可能会使用 websockets 等,这可能是一个好主意,而是 HttpClient 的一种适配形式,它在后台使用了 JavaScript Fetch API。

希望这可以帮助...

好消息:

转移到 mono.wasm 绑定应该能够支持 WebSockets、HttpClient 而不需要额外的代码等等。

来源:https : //github.com/aspnet/AspNetCore/issues/10489