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];
}
}
#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];
}
}
相关文章推荐
- NSURLConnection NSMutableURLRequest异步下载数据 delegate
- ios NSURLRequest NSMutableURLRequest 数据请求
- ios NSURLRequest NSMutableURLRequest 数据请求
- iOS NSURLRequest NSMutableURLRequest 数据请求
- iOS之NSURLRequest NSMutableURLRequest 数据请求
- ios NSURLRequest NSMutableURLRequest 数据请求
- NSURLConnection+ NSMutableURLRequest(iOS9)
- ios学习--iphone NSURLRequest NSMutableURLRequest 数据请求相关
- iOS网络下载三函数NSURLConnection/NSURLRequest/NSMutableData
- POST和GET、NSMutableURLRequest和NSURLRequest两组分别的区别
- iOS-95-网络请求方式汇总(包含AFNetworking、NSMutableURLRequest)
- 开源一个网络库ARHttpRequest,iOS适配NSURLSession/ASIHTTPRequest等,Android适配HttpURLConnection等
- 基于Swift的iOS应用程序开发:使用NSMutableURLRequest向服务器发送请求
- iOS NSMutableURLRequest 上传图片
- IOS成长之路-NSMutableURLRequest实现Post请求
- iOS网络: 通过NSMutableURLRequest修改一个URL的请求
- IOS成长之路-NSMutableURLRequest实现Post请求
- NSMutableURLRequest,在POST方式下传递参数(转)
- iOS UIWebView 载入https 网站出现NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL,
- IOS NSMutableAttributedString用法