C# 如何使用Blazor获取网页标题?
我试图在Blazor中进行应用,当我试图获取任何网页的标题时,我收到错误System.PlatformNotSupportedException:此平台不支持操作。是否有其他解决方案?我也从HttpClient开始,但不知道如何做,也不知道如何在CORS授权中使用这个get错误C# 如何使用Blazor获取网页标题?,c#,cors,webclient,blazor,blazor-client-side,C#,Cors,Webclient,Blazor,Blazor Client Side,我试图在Blazor中进行应用,当我试图获取任何网页的标题时,我收到错误System.PlatformNotSupportedException:此平台不支持操作。是否有其他解决方案?我也从HttpClient开始,但不知道如何做,也不知道如何在CORS授权中使用这个get错误 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AutomaticDecompression = Deco
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 "";
}
HttpWebRequest-request=(HttpWebRequest)WebRequest.Create(url);
request.AutomaticDecompression=DecompressionMethods.GZip | DecompressionMethods.Deflate;
使用(HttpWebResponse=(HttpWebResponse)request.GetResponse())
使用(Stream=response.GetResponseStream())
使用(StreamReader=新StreamReader(stream))
{
var str=reader.ReadToEnd();
Regex reg=新的Regex((.*);
MatchCollection m=注册匹配项(str);
如果(m.计数>0)
{
返回m[0].Value.Replace(“,”).Replace(“,”);
}
其他的
返回“”;
}
使用Blazor服务器端,您的代码应该可以工作,尽管HttpClient会更好
但PlatformNotSupportedException意味着您正在Blazor WebAssembly上运行此功能。您必须使用HttpClient,但是
。。。使用HttpClient[…]获取CORS授权时出错
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 WebAssembly受到适用于任何JavaScript或WebAssembly应用程序的标准“沙盒”安全规则的限制
您将无法随机访问站点。API站点可能允许使用CORS头进行此操作,但您自己域之外的网站将无法访问 使用Blazor服务器端,您的代码应该可以工作,尽管HttpClient会更好 但PlatformNotSupportedException意味着您正在Blazor WebAssembly上运行此功能。您必须使用HttpClient,但是 。。。使用HttpClient[…]获取CORS授权时出错
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 WebAssembly受到适用于任何JavaScript或WebAssembly应用程序的标准“沙盒”安全规则的限制
您将无法随机访问站点。API站点可能允许使用CORS头进行此操作,但您自己域之外的网站将无法访问 相关但不完全重复:相关但不完全重复: