zoukankan      html  css  js  c++  java
  • 网络错误的基本处理

    1.首先明确下顺序:

       Eg:"POST"情况:string->NSData,NSMutableURLrequest,NSURLConnection, NSURLResponse


      static NSString *body = @"aaaaaa";//要POST的输入string

    static NSString *URLString = @"http://earthquake.usgs.gov/eqcenter/catalogs/7day-M2.5.xml";

    NSData *dataBody = [NSData dataWithBytes: [stringBody UTF8Stringlength: [body length]];//将string封装成NSData类型的数据

     


    NSMutableURLRequest *request = [[NSMutableURLRequest allocinitWithURL:[NSURL URLWithString: URLString]]; 

    //发送请求,正式发送

     

    [request setHTTPMethod:@"POST"];

    [request setHTTPBody:dataBody];


     

    NSURLResponse *response;

    NSError *error;

    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];//发送同步连接+反馈请求


     

    //在NSCocoaErrorsDomain领域中,除非你知道具体的CFNetWorkError类型,非则用[Error code]便利构造

    if(error){

     

      NSError *locatedError = [NSError errorWithDomain:NSCocoaErrorDomain code:[error code]userInfo:[NSDictionarydictionary]];

    //本地化描述具体的错误,用NSInteger返回ui,告知用户

    NSString *errorMessage = [locatedError localizedDescription];


            //以下是弹出警告,为了UI的友好性要求

    UIAlertView *alertV iew = [[UIAlertView allocinitWithTitle:NSLocalizedString(@"Error Title"@"")message:errorMessage delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alertView show];

    [alertView release];

    }

     

    2.Eg:默认"GET"情况:NSMutableURLrequest,NSURLConnection, NSURLRespons,String->NSData


    >>>同上


     


    [URLRequest setHTTPMethod:@"GET"];//默认为GET,否则是POST,也可不加

       //连接失败,则抛出异常,如有2中delegate监听,亦可不加

        NSAssert(self.earthquakeFeedConnection != nil@"Failure to create URL connection.");

       //连接等待标志,必加的

        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;


    2.哦了,以上的连接是最经典的代码,可以进行NSURLConnection delegate监听了~


     

    1>

     - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {

         //这里写些对response的处理,一般是些error处理,可以不在这里处理直接跳转到3>  

    }

    2>

     - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

          //这里写些对data数据的处理,一般是初始化数据后,将data写入

    }


    3> 

    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {

         [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;   

    //在NSCocoaErrorsDomain领域中,除非你知道具体的CFNetWorkError类型,非则用[Error code]便利构造

    NSError *locatedError = [NSError errorWithDomain:NSCocoaErrorDomain code:[error codeuserInfo:[NSDictionary dictionary]]; 

    //本地化描述具体的错误,用NSInteger返回ui,告知用户

    NSString *errorMessage = [locatedError localizedDescription];


            //以下是弹出警告,为了UI的友好性要求

    UIAlertView *alertView = [[UIAlertView allocinitWithTitle:NSLocalizedString(@"Error Title"@""message:errorMessagedelegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alertView show];

    [alertView release];

    }


    OVER, 以上是从xml获取信息移植到自定义app中的错误处理过程,~~

  • 相关阅读:
    Model I/O
    How to create realistic .scn files?
    3ds Max 教程
    ELK Stack企业日志平台文档
    源码搭建Zabbix4.0.23LTS监控系统
    Ansible自动化运维应用实战
    网站架构部署
    MySQL数据库性能优化与监控实战(阶段四)
    MySQL数据库企业集群项目实战(阶段三)
    基于xtrabackup的主从同步
  • 原文地址:https://www.cnblogs.com/peer/p/2050759.html
Copyright © 2011-2022 走看看