Russian Qt Forum

Qt => Работа с сетью => Тема начата: Admin от Ноябрь 19, 2008, 00:10



Название: Как проверить URL на валидность?
Отправлено: Admin от Ноябрь 19, 2008, 00:10
Пример не срабатывает:

Код
C++ (Qt)
       QString line = "#test base";
       QUrl url(line, QUrl::TolerantMode);
       if(!url.isValid()) continue;

QUrl считает, что это валидный URL.


Название: Re: Как проверить URL на валидность?
Отправлено: Rcus от Ноябрь 19, 2008, 00:33
хороший вопрос почему, по этому поводу можно почитать src\corelib\io\qurl.cpp :)
по RFC1738 (http://www.faqs.org/rfcs/rfc1738.html) (см. секцию 5, BNF-формулы) вообще обязательно указывать схему :)


Название: Re: Как проверить URL на валидность?
Отправлено: Admin от Ноябрь 19, 2008, 10:03
угу выставляю схему, типа
   
Код
C++ (Qt)
            QString line = "#test base";
            QUrl url(line, QUrl::TolerantMode);
            url.setSheme("http");
            if(!url.isValid()) continue;
 

легче не стало) исходов под рукой нет (


Название: Re: Как проверить URL на валидность?
Отправлено: Admin от Ноябрь 21, 2008, 08:12
Как я понял из доки, только при составлении URL можноиспользовать isValid(), для сторонних URL нет. Так что буду юзать регулярку.


Название: Re: Как проверить URL на валидность?
Отправлено: Ruzzz от Ноябрь 03, 2009, 02:18
Из примера qt\demos\browser\browsermainwindow.cpp - QUrl guessUrlFromString(const QString &string), может кому пригодится :)