uiNSURLas
来源:互联网 发布:java的socket 编辑:程序博客网 时间:2024/06/04 18:10
//
// netConnection.m
// uiNSURLas
//
// Created by lh2718 on 16/4/5.
// Copyright © 2016年 lh2718. All rights reserved.
//
#import "netConnection.h"
@interface netConnection ()<NSURLSessionDataDelegate,NSURLSessionDelegate>
@property (nonatomic, retain)NSMutableData *data;
@property (nonatomic, assign)NSInteger identifier;
@end
@implementation netConnection
-(void)dealloc
{
[_data release];
[super dealloc];
}
-(instancetype)init
{
self = [super init];
if(self)
{
self.data = [NSMutableData data];
}
return self;
}
+(instancetype)netConnectionWithURL:(NSString *)strURL parameters:(NSDictionary *)paramenters delegate:(id<netConnectionDelegate>)delegate identifier:(NSInteger)identifier
{
NSString *par = @"";
//拼接网址
for(NSString *key in paramenters)
{
if([par length] == 0)
{
par = [NSString stringWithFormat:@"?%@=%@",key,[paramenters objectForKey:key]];
}
else{
par = [NSString stringWithFormat:@"%@&%@=%@",par,key,[paramenters objectForKey:key]];
}
}
strURL = [NSString stringWithFormat:@"%@%@",strURL,par];
netConnection *netConn = [[netConnection alloc]init];
netConn.delegate = delegate;
netConn.identifier = identifier;
[netConn startURLSession:strURL];
return [netConn autorelease];
}
-(void)startURLSession:(NSString *)strURL
{
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strURL]];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request];
[dataTask resume];
}
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
{
completionHandler(NSURLSessionResponseAllow);
}
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
[self.data appendData:data];
}
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
[self.delegate connectionFinish:_data identifier:_identifier];
}
@end
// netConnection.m
// uiNSURLas
//
// Created by lh2718 on 16/4/5.
// Copyright © 2016年 lh2718. All rights reserved.
//
#import "netConnection.h"
@interface netConnection ()<NSURLSessionDataDelegate,NSURLSessionDelegate>
@property (nonatomic, retain)NSMutableData *data;
@property (nonatomic, assign)NSInteger identifier;
@end
@implementation netConnection
-(void)dealloc
{
[_data release];
[super dealloc];
}
-(instancetype)init
{
self = [super init];
if(self)
{
self.data = [NSMutableData data];
}
return self;
}
+(instancetype)netConnectionWithURL:(NSString *)strURL parameters:(NSDictionary *)paramenters delegate:(id<netConnectionDelegate>)delegate identifier:(NSInteger)identifier
{
NSString *par = @"";
//拼接网址
for(NSString *key in paramenters)
{
if([par length] == 0)
{
par = [NSString stringWithFormat:@"?%@=%@",key,[paramenters objectForKey:key]];
}
else{
par = [NSString stringWithFormat:@"%@&%@=%@",par,key,[paramenters objectForKey:key]];
}
}
strURL = [NSString stringWithFormat:@"%@%@",strURL,par];
netConnection *netConn = [[netConnection alloc]init];
netConn.delegate = delegate;
netConn.identifier = identifier;
[netConn startURLSession:strURL];
return [netConn autorelease];
}
-(void)startURLSession:(NSString *)strURL
{
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strURL]];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request];
[dataTask resume];
}
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
{
completionHandler(NSURLSessionResponseAllow);
}
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
[self.data appendData:data];
}
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
[self.delegate connectionFinish:_data identifier:_identifier];
}
@end
0 0
- uiNSURLas
- MatlabR2015b & VSProfessional2013 混合编码连接以及一个问题(opencv)
- jquery 伴侣
- 获取指定url的扩展名称以及文章ID
- ScrollView 嵌套webview 高度失调 等项关设置,点击拦截
- nodejs logger
- uiNSURLas
- 工作中使用git的实用技巧总结
- windows平台下使用sqlite在unity中创建数据库
- typeof运算符使用详情
- 第三节 重定向和管道操作
- Spring Boot(四)通用CRUD案例、异常统一处理
- AOJ.559 丢失的数字
- XML-Range解析
- STM32单片机串口下载程序的简单原理和设置