使用自带的网络下载,需要用到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];
}
}