NSURLSession的POST请求及封装
来源:互联网 发布:淘宝免费申请试用几次 编辑:程序博客网 时间:2024/05/22 15:36
这是在.h文件中的声明,需要声明两个block用来回调
#import <Foundation/Foundation.h>typedef void(^SuccessBlock)(id newData, NSURLResponse * response);typedef void(^FailureBlock)(NSError * error);@interface NetworkForSession : NSObject+(void)sessionPostRequsetWithUrl:(NSString *)url Parameters:(NSDictionary *)parameters ResponseBlockWithSuccess:(SuccessBlock)success AndFailureBlock:(FailureBlock)failure;@end
上.m文件中代码
#import "NetworkForSession.h"@implementation NetworkForSession+(void)sessionPostRequsetWithUrl:(NSString *)url Parameters:(NSDictionary *)parameters ResponseBlockWithSuccess:(SuccessBlock)success AndFailureBlock:(FailureBlock)failure{ //异步post NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]]; //设置请求方式 [request setHTTPMethod:@"POST"]; //设置超时 [request setTimeoutInterval:30.0f]; //(3)设置请求头 //[request setAllHTTPHeaderFields:nil]; //设置请求体 if (parameters != nil) { NSArray * keyArray = [parameters allKeys]; NSMutableArray * newParameterArray = [NSMutableArray array]; for (int i = 0; i < keyArray.count; i++) { NSString * str = [[keyArray[i] stringByAppendingString:@"="] stringByAppendingString:[parameters[keyArray[i]] isKindOfClass:[NSString class]] ? parameters[keyArray[i]] : [NSString stringWithFormat:@"%@", parameters[keyArray[i]]]]; [newParameterArray addObject:str]; } NSMutableString * httpBody = [NSMutableString string]; for (int i = 0; i < newParameterArray.count; i++) { [httpBody appendString:[newParameterArray[i] stringByAppendingString:@"&"]]; } [httpBody deleteCharactersInRange:NSMakeRange(httpBody.length - 1, 1)]; [request setHTTPBody:[httpBody dataUsingEncoding:NSUTF8StringEncoding]]; }else{ [request setHTTPBody:nil]; } //构造session NSURLSession * session = [NSURLSession sharedSession]; NSURLSessionDataTask * task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
id newData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; if (error) { failure(error); }else{ success(newData, response); } }]; [task resume];}@end
1 0
- NSURLSession的POST请求及封装
- NSURLSession的GET和POST请求的封装
- NSURLSession的GET和POST请求的封装
- iOS开发:NSUrlSession网络请求的封装
- NSURLSession(二)POST请求
- NSURLSession(二)POST请求
- NSURLSession(二)POST请求
- NSURLSession(二)POST请求
- NSURLSession(二)POST请求
- NSURLSession(二)POST请求
- NSURLSession(二)POST请求
- ios NSURLSession Post请求
- Swift的学习(NSURLSession发送get、post请求)
- iOS 原生NSURLSession 简单的 GET、POST 请求
- NSURLSession(三)POST请求—>上传图片
- iOS NSURLSession网络请求(get/post/下载)
- NSURLSession(三)POST请求—上传图片
- 使用NSURLSession发送get和post请求
- error LNK2001: unresolved external symbol _CrtDbgReportW
- android APK加固篇-3.使用JNI加载dex和调用方法
- 4.2.1 UNION和UNION ALL
- 上交ACM试点班的黄埔精神
- 4.2.2 MINUS
- NSURLSession的POST请求及封装
- 模块构件
- 文字上下无缝滚动
- 4.2.3 INTERSECT
- 4.3 集合与空值
- Java 代理模式和装饰者模式的区别
- Hive学习笔记1:Hive创建外部表指向Hbase表时的汉字乱码问题
- Quartz 2D原文档及中文翻译收藏
- 文字左右无缝滚动