如何验证网页是否存在

时间:2012-03-29 12:02:59

标签: c http sockets

我发送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”)。 它仍然是一些数据,因此我不能得到numBytes&lt; 0。

如何检查响应状态以验证页面是否存在?

3 个答案:

答案 0 :(得分:3)

您必须阅读响应的第一行并提取状态代码。如果它是4xx或5xx代码出错了(404 =未找到,403 =拒绝访问)。

答案 1 :(得分:0)

检查numBytes&lt; 0仅允许您确定是否存在致命的TCP错误,例如连接失败。要确定页面是否存在,您需要实现HTTP协议的一部分。我建议您使用库,例如​​libcurllibwww

答案 2 :(得分:0)