我怎样才能在AFNetworking 3.0迁移?
我正在迁移AFNetworking 3.0。 我在AFNetworking中使用AFHTTPRequestOperation,但在最近的更新中删除了它。 我尝试了所有可能的解决scheme。 基本上我需要发布一个JSON头。 我将我的NSDIctionary转换成JSON对象,然后将其添加为string。 这里是我的Header的示例JSON
RequestHeader={ "lname" : "sadhsdf", "bday" : "2003-03-13", "age" : "12", "address" : "dsfhskdjgds", "gender" : "M", "cnumber" : "12312412", "fname" : "sadhsdf", "RequestType" : "userregistration", "Email" : "sldjlkasd@sjdhflksdf.com", "status" : "dsfhskdjgds", "Password" : "123456" }
RequestHeader是一个NSString,其余的都是NSDictionary。
我如何将它应用于AFNetworking 3.0? 先谢谢你。
NSURL *URL = [NSURL URLWithString:@"http://example.com/api"]; NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:URL sessionConfiguration:configuration]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; NSMutableDictionary *params = [[NSMutableDictionary alloc]init]; [params setValue:@"some value" forKey:@"someKey"]; [manager POST:@"search" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { //If you need to send image UIImage *image = [UIImage imageNamed:@"my_image.jpg"]; [formData appendPartWithFileData:UIImageJPEGRepresentation(image, 0.5) name:@"Image" fileName:@"my_image.jpg" mimeType:@"image/jpeg"]; } success:^(NSURLSessionDataTask *task, id responseObject) { } failure:^(NSURLSessionDataTask *task, NSError *error) { }];
你可以在这里查看官方的移民指南
使用常见的NSObject
类调用与AFNetworking 3.0的 WS这是我的重复的答案,但它已更新与AFNetworking 3.0首先使任何名称的NSObject
类在这里我创buildNSObject
类与名称Webservice.h和Webservice.m
Webservice.h
@interface Webservice : NSObject + (void)requestPostUrl:(NSString *)strURL parameters:(NSDictionary *)dictParams success:(void (^)(NSDictionary *responce))success failure:(void (^)(NSError *error))failure; @end
Webservice.m你的nsobject.m文件看起来像这样( 在.m文件中添加两个函数 )
#import "Webservice.h" #define kDefaultErrorCode 12345 @implementation Webservice + (void)requestPostUrl:(NSString *)strURL parameters:(NSDictionary *)dictParams success:(void (^)(NSDictionary *responce))success failure:(void (^)(NSError *error))failure { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager setResponseSerializer:[AFHTTPResponseSerializer serializer]]; [manager POST:strURL parameters:dictParams progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if([responseObject isKindOfClass:[NSDictionary class]]) { if(success) { success(responseObject); } } else { NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil]; if(success) { success(response); } } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if(failure) { failure(error); } }]; } @end
确保您必须将成功的字典密钥replace为处理响应callback函数的消息
使用像这样从任何viewControllers
和任何viewControllers
任何方法调用这个常用的方法。 暂时我使用viewDidLoad
调用这个WS。
- (void)viewDidLoad { [super viewDidLoad]; NSDictionary *dictParam = @{@"parameter1":@"value1",@"parameter1":@"value2"}; [Webservice requestPostUrl:@"add your webservice URL here" parameters:dictParam success:^(NSDictionary *responce) { //Success NSLog(@"responce:%@",responce); //do code here } failure:^(NSError *error) { //error }]; }
在上面的方法中添加你的参数,值和web服务的URL。 你可以很容易地使用这个NSObjcet
类。 欲了解更多详情,请访问AFNetworking 3.0或我的旧AFANSworking 2.0 answear 。
NSURL *url = [NSURL URLWithString:@"https://example.com/"]; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: height, @"user[height]", weight, @"user[weight]", nil]; [httpClient postPath:@"/myobject" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; NSLog(@"Request Successful, response '%@'", responseStr); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"[HTTPClient Error]: %@", error.localizedDescription); }];
- 根据文本dynamic获取UILabel的高度为iOS 7.0和iOS 6.1返回不同的值
- 将编码的.mp3保存到applicationStorageDirectory Adobe Air iOS
- 获取失败块AFNetworking 3.0上的responseObject
- 如何根据框架在video中设置CATextLayer?
- AVCaptureTorchModeAuto不会持续更新火炬模式
- 任何方式来改变UITcrollView的zoomToRect的持续时间?
- AFNetworking 3.0 setImageWithURLRequest下载进度
- AFNetworking 3 x-www-form-urlencoded发布数据
- 获取UIView FXBlurView单独的类