首页 > 解决方案 > 如何使用 Blazor 获取网页标题?

问题描述

我正在尝试在 Blazor 中进行应用,当我尝试获取任何网页的标题时,我收到错误System.PlatformNotSupportedException: Operation is not supported on this platform。除了这个还有其他解决方案吗?我也从 HttpClient 开始,但不知道如何去做,并在 CORS 授权中使用这个 get 错误。

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    using (Stream stream = response.GetResponseStream())
    using (StreamReader reader = new StreamReader(stream))
    {
        var str = reader.ReadToEnd();
        Regex reg = new Regex("<title>(.*)</title>");
        MatchCollection m = reg.Matches(str);
        if (m.Count > 0)
        {
            return m[0].Value.Replace("<title>", "").Replace("</title>", "");
        }
        else
            return "";
    }

标签: c#corswebclientblazorblazor-client-side

解决方案


使用 Blazor 服务器端,您的代码应该可以工作,尽管 HttpClient 会更好。

但是 PlatformNotSupportedException 意味着您正在 Blazor WebAssembly 上运行它。在那里你必须使用 HttpClient,但是

... 使用 HttpClient [...] 获取 CORS 授权错误。

无论您使用什么,这个问题都不会消失。

Blazor WebAssembly 受到适用于任何 JavaScript 或 WebAssembly 应用程序的标准“沙盒”安全规则的限制。

您将无法随意访问网站。API 站点可能允许使用 CORS 标头进行此操作,但您自己域之外的网站将无法访问。


推荐阅读