iOS-NSURLConnection、NSMutableURLRequest、NSURLRequest用法

来源:互联网 发布:mysql下载及安装步骤 编辑:程序博客网 时间:2024/06/06 17:59

使用自带的网络下载,需要用到NSURLConnection,继承协议。

#pragma mark-

#pragma Request  

//开始下载图片数据

-(void)startDownload:(NSString *)imageString

{

//     [MBProgressHUD showHUDAddedTo:[[[UIApplication sharedApplication] windows] objectAtIndex:0] animated:YES];

    NSString *strurl=[imageString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    dataData =[[NSMutableData alloc]init];

  

    NSURL *url=[NSURL URLWithString:strurl];

//    NSURLRequest *imagerequst=[NSURLRequest requestWithURL:url];

        NSURLRequest *imagerequst=[NSURLRequest requestWithURL:urlcachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0f];

    dataConnection=[[NSURLConnection alloc]initWithRequest:imagerequst delegate:self];

    

}

//get方式


-(void)startDownloadData:(NSString*)dataUrlString withType:(QueryType)type//下载数据

{

    if (type!=getTradeRecord) {

        

        [MBProgressHUD showHUDAddedTo:[[[UIApplication sharedApplication] windows]objectAtIndex:0] animated:YES]; 

    }

    

    NSString *strurl=[dataUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    dataData =[[NSMutableData alloc]init];

    m_maintype=type;

    NSURL *url=[NSURL URLWithString:strurl];

    NSURLRequest *datarequst=[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0f];

    dataConnection=[[NSURLConnection alloc]initWithRequest:datarequst delegate:self];   

}

//post方式请求数据


-(void)startDownloadData:(NSString * )dataUrlString withPostData:(NSString *)postData withType:(QueryType)type

{

     [MBProgressHUD showHUDAddedTo:[[[UIApplication sharedApplication] windows] objectAtIndex:0]animated:YES];

    NSString *strurl=[dataUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    dataData =[[NSMutableData alloc]init];

    m_maintype=type;

    NSURL *url=[NSURL URLWithString:strurl];

    NSMutableURLRequest *datarequst=[[[NSMutableURLRequest alloc]initWithURL:url] autorelease];

    datarequst.timeoutInterval = 10.0f;

    NSData *postdata=[postData dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];//postDatastring)转换为data

    [datarequst setHTTPBody:postdata];

    [datarequst setHTTPMethod:@"POST"];

    dataConnection=[[NSURLConnection alloc]initWithRequest:datarequst delegate:self];

}


//put请求方式

-(void)putstartDownloadData:(NSString*)dataUrlString withType:(QueryType)type//下载数据

{

     [MBProgressHUD showHUDAddedTo:[[[UIApplication sharedApplication] windows] objectAtIndex:0]animated:YES];

    NSString *strurl=[dataUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    dataData =[[NSMutableData alloc]init];

    m_maintype=type;

    NSURL *url=[NSURL URLWithString:strurl];

    NSMutableURLRequest *datarequst=[[[NSMutableURLRequest alloc]initWithURL:url] autorelease];

    datarequst.timeoutInterval = 10.0f;

    [datarequst setHTTPMethod:@"PUT"];

    dataConnection=[[NSURLConnection alloc]initWithRequest:datarequst delegate:self];

    

    

}


//连接


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

{

    [dataData appendData:data];

}


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

{

//    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"提示" message:@"网络错误" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];

//    [alert show];

//    [alert release];


     [MBProgressHUD hideHUDForView:[[[UIApplication sharedApplication] windows] objectAtIndex:0]animated:YES];

    [[[[UIApplication sharedApplication] windows] objectAtIndex:0] makeToast:@"网络错误!" ];

    

    return;


}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection

{

    

//    NSData *data=[[NSData alloc]initWithData:dataData];

    if (datadelegate && [datadelegate respondsToSelector:@selector(imageDown:andreleaseData:)]) {

        [datadelegate imageDown:dataData andreleaseData:self];

        

        return;

    }

    DataParser *parser = [[DataParser allocinit];

    parser.m_parserdelegate = self;

    [parser dataDidload:dataData andreleaseData:self];

      [MBProgressHUD hideHUDForView:[[[UIApplication sharedApplication] windows] objectAtIndex:0]animated:YES];

//    [data release];


}


//数据请求解析后回调

-(void)myparserCallBack:(NSString *)signs array:(NSMutableArray *)array{

    

     [MBProgressHUD hideHUDForView:[[UIApplication sharedApplication].windows objectAtIndex:0]animated:YES];

            if (datadelegate && [datadelegate respondsToSelector:@selector(CallbackToVC:array:)]) {

                [datadelegate CallbackToVC:signs array:array];

            }

}

-(void)dicCallBack:(NSMutableDictionary *)dic

{

    [MBProgressHUD hideHUDForView:[[UIApplication sharedApplication].windows objectAtIndex:0]animated:YES];

    if (datadelegate && [datadelegate respondsToSelector:@selector(CallbackdicToVC:)]) {

        [datadelegate CallbackdicToVC:dic];

    }

    

    

}

原创粉丝点击