尝试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/网络调用?
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
| 归档时间: |
|
| 查看次数: |
2003 次 |
| 最近记录: |