令人疑惑的数值

      前两天在制作那备份更新地址功能。阅读之前离职同事写的关于下载网络文件的代码时,遇到了一段有疑问的代码:

      ......

      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外的都是异常的,都可以统一处理。不过这更新的功能影响重大,一出问题那就是灾难性的,要全面地测测才行。

posted @ 2010-11-10 13:10  毛志谦  阅读(211)  评论(0编辑  收藏  举报