不支持WebClient

时间:2019-05-23 23:46:18

标签: blazor

尝试在Blazor项目中使用WebClient

出现以下错误:

blazor.webassembly.js:1

WASM: System.Net.WebException: An exception occurred during a WebClient request.
System.PlatformNotSupportedException: Operation is not supported on this platform.

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

1 个答案:

答案 0 :(得分:1)

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

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

希望这对您有帮助...

好消息:

  

移至mono.wasm绑定应启用对WebSocket的支持,   没有附加代码的HttpClient等。

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