xcode.png
NSURLSession
用NSURLSession发送Get请求的三种方式
第一种:
-(void)request1{
//创建请求路径
NSURL *url=[NSURL URLWithString:@"http://XXXXXXX/login?username=wujian&pwd=wujian&type=JSON"];
//创建请求对象
NSURLRequest *request=[NSURLRequest requestWithURL:url];
//创建会话对象
NSURLSession *session=[NSURLSession sharedSession];
//根据会话对象来创建请求任务 任务中的代码块默认在子线程中执行
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
}];
//执行任务(发送请求)
[dataTask resume];
}
第二种:
-(void)request2{
//创建请求路径
NSURL *url=[NSURL URLWithString:@"http://XXXXXX/login?username=wujian&pwd=wujian&type=JSON"];
//创建会话对象
NSURLSession *session=[NSURLSession sharedSession];
//根据会话对象创建请求任务
NSURLSessionDataTask *dataTask=[session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
NSLog(@"%@",[NSThread currentThread]);
}];
[dataTask resume];
}
第三种:
-(void)request3{
//创建请求路径
NSURL *url=[NSURL URLWithString:@"http://1XXXXXX/login?username=wujian&pwd=wujian&type=JSON"];
//创建请求对象
NSURLRequest *requeset=[NSURLRequest requestWithURL:url];
//创建会话对象 这里的队列如果传nil,则是在子线程中执行
NSURLSession *session=[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];
//根据会话对象创建请求任务
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:requeset];
[dataTask resume];
}
//当接收到来自服务器响应的时候调用
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{
self.data=[NSMutableData data];
//告诉系统如何处理从服务器返回的数据
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{
NSLog(@"%@",[[NSString alloc]initWithData:self.data encoding:NSUTF8StringEncoding]);
}
使用NSURLSession发送Post请求
-(void)post{
//获取请求路径
NSURL *url=[NSURL URLWithString:@"http://XXXXX/login"];
//创建可变的请求对象
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
//设置请求方法
request.HTTPMethod=@"POST";
//设置参数:请求体
request.HTTPBody=[@"username=wujian&pwd=wujian&type=JSON"dataUsingEncoding:NSUTF8StringEncoding];
//创建会话对象
NSURLSession *session=[NSURLSession sharedSession];
//根据会话对象来创建请求任务
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
NSLog(@" %@",[NSThread currentThread]);
}];
//提交请求
[dataTask resume];
}
网友评论