您的位置:首页 > 产品设计 > UI/UE

iOS-NSURLConnection、NSMutableURLRequest、NSURLRequest用法

2013-07-24 11:50 495 查看
使用自带的网络下载,需要用到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];//将postData(string)转换为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 alloc] init];

    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];

    }

    

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息