AFNetworking的使用,post、get請求
阿新 • • 發佈:2018-11-16
AFNetworking
一、post請求
//url NSString *urlString = @"http://47.95.207.40/branch/user/register"; //初始化一個AFHTTPSessionManager AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //設定請求體資料為json型別 manager.requestSerializer = [AFJSONRequestSerializer serializer]; //設定響應體資料為json型別 manager.responseSerializer = [AFJSONResponseSerializer serializer]; //請求體,引數(NSDictionary 型別) NSDictionary *parameters = @{@"username":username, @"account":account, @"password":password }; [manager POST:urlString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) { } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { }];
二、get請求
AFHTTPSessionManager *manger = [AFHTTPSessionManager manager]; NSString *url = @"https://is.snssdk.com/api/news/feed/v51/?catagory="; url = [url stringByAppendingString:title]; [manger GET:url parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { }];
三、當引數為表單時
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //這時候請求體引數不是json manager.requestSerializer = [AFHTTPRequestSerializer serializer]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; [manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { //在這裡寫入表單引數 [formData appendPartWithFormData:[@"refresh_token" dataUsingEncoding:NSUTF8StringEncoding] name:@"grant_type"]; //refreshData是NSData型別的引數 [formData appendPartWithFormData:refreshData name:@"refresh_token"]; } progress:^(NSProgress * _Nonnull uploadProgress) { } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { }];