前两天在制作那备份更新地址功能。阅读之前离职同事写的关于下载网络文件的代码时,遇到了一段有疑问的代码:
......
CHttpFile* fileGet;
......
DWORD dwStatus;
DWORD dwBufflen = sizeof(dwStatus);
bool succeed;
succeed= fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,&dwStatus,&dwBufflen);
if(succeed&& dwStatus>=200 && dwStatus<300)
{
......
}
......
心里一直对那200和300起疙瘩,这两数值是根据什么来设置的呢。而且测试的时候,那异常的更新文件地址直接跳过这个if里面的语句了,却在后续代码里没作相应处理。
后来再网上搜索到相关的资讯,关于dwStatus范围的:
200-299 :Success
300-399 :Information
400-499 :Request error
500-599 :Server error
以及:
200:URL located, transmission follows
400 :Unintelligible request
404 :Requested URL not found
405 :Server does not support requested method
500 :Unknown server error
503 :Server capacity reached
原来如此。。。把那200和300定义一个易懂的宏看起来就好很多了。再在if后面加个else处理异常,看来除200到299外的都是异常的,都可以统一处理。不过这更新的功能影响重大,一出问题那就是灾难性的,要全面地测测才行。