c# - 如何使用 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 "";
}
解决方案
使用 Blazor 服务器端,您的代码应该可以工作,尽管 HttpClient 会更好。
但是 PlatformNotSupportedException 意味着您正在 Blazor WebAssembly 上运行它。在那里你必须使用 HttpClient,但是
... 使用 HttpClient [...] 获取 CORS 授权错误。
无论您使用什么,这个问题都不会消失。
Blazor WebAssembly 受到适用于任何 JavaScript 或 WebAssembly 应用程序的标准“沙盒”安全规则的限制。
您将无法随意访问网站。API 站点可能允许使用 CORS 标头进行此操作,但您自己域之外的网站将无法访问。
推荐阅读
- php - 在渲染模板期间抛出异常(“找不到控制器:
- python - 如何使用 Python CDK 代码部署 Java Lambda jar?
- javascript - HTML - 悬停时显示图像
- javascript - 如何通过 Crypto-JS 解密 AES 128-CBC?
- f# - 无法使用 F# 和 RestSharp for Mailgun 对 REST Api 进行身份验证
- python - 如何在CSV文件中转换python字典文件(具有二维数组)
- visual-studio - 有没有办法在 Visual Studio 中更改参考提示的字体?
- javascript - 如何在 React 17 中不启动 ComponentDidMount() 方法
- python - Elast 警报 email_from_field 仅向一个收件人发送消息
- php - AWS SES 电子邮件发送错误:无法连接到 SMTP 主机