Как получить заголовок веб-страницы с помощью Blazor? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь подать заявку в Blazor, и когда я пытаюсь получить заголовок любой веб-страницы, я получаю сообщение об ошибке System.PlatformNotSupportedException: операция не поддерживается на этой платформе. Есть ли другое решение чем это? Я также начал с HttpClient, но не представляю, как это сделать, и использовал эту ошибку get с авторизацией 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 "";
    }

1 Ответ

2 голосов
/ 26 апреля 2020

С серверной частью Blazor ваш код должен работать, хотя HttpClient был бы лучше.

Но PlatformNotSupportedException означает, что вы выполняете это в Blazor WebAssembly. Там вы должны использовать HttpClient, но

... с HttpClient [...] получите ошибку с авторизацией CORS.

И эта проблема не будет go прочь, независимо от того, что вы используете.

Blazor WebAssembly ограничивается стандартными правилами безопасности «песочницы», которые применяются для любого JavaScript или приложения WebAssembly.

Вы не сможете получить доступ к сайтам в случайном порядке. Сайты API могут разрешать это, используя заголовок CORS, но сайты за пределами вашего собственного домена будут недоступны.

...