Как проверить, что веб-страница существует - PullRequest
1 голос
/ 29 марта 2012

Я отправляю запрос HTTP GET и получаю данные здесь:

ssize_t numBytes = recvfrom(sock, request, 1000, 0,
                   (struct sockaddr *) &myaddr, &fromAddrLen);
    if(numBytes < 0)
        printf("The requested resource does not exist.\n");
    else
        printf("the webpage exist :)\n");

Я хочу проверить, существует ли запрошенная страница или нет.Но даже если страница не существует, сообщение о состоянии часто отправляется с сервера (что-то вроде «404 not found»).Это все еще некоторые данные, поэтому я не могу получить numBytes <0.</p>

Как проверить статус ответа, чтобы можно было проверить наличие страницы?

Ответы [ 3 ]

3 голосов
/ 29 марта 2012

Ну, вы должны прочитать первую строку ответа и извлечь код состояния.Если это код 4xx или 5xx, что-то пошло не так (404 = Не найдено, 403 = Доступ запрещен).

0 голосов
/ 29 марта 2012
0 голосов
/ 29 марта 2012

Проверка на numBytes <0 позволяет только определить, есть ли фатальная ошибка TCP, например, сбой соединения. Чтобы узнать, существует ли страница, вам нужно реализовать часть протокола HTTP. Я рекомендую вам использовать библиотеку, такую ​​как <a href="http://curl.haxx.se/libcurl/c/example.html" rel="nofollow"> libcurl или libwww .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...