如何通过AFNetworking做GET请求?

我添加了目录AFNetworkingUIKit+AFNetworking给项目经理。 我使用最新的库3.0.4

在我的类文件.m导入文件AFNetworking.h之后。 我发现很多示例如何向url发送请求,但是信息是旧的。

如何使GET请求到URL并从服务器获取数据? 现在函数AFHTTPRequestOperation被删除。

这是第一次在xcode中使用库,我是初学者。

 AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://google.com/"]]; NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET" path:@"http://google.com/api/pigs/" parameters:nil]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { // Print the response body in text NSLog(@"Response: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; [operation start]; 

=============================================

您也可以使用AFHTTPRequestOperation:

 NSOperationQueue *networkQueue = [[NSOperationQueue alloc] init]; networkQueue.maxConcurrentOperationCount = 5; NSURL *url = [NSURL URLWithString:@"https://example.com"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; NSLog(@"%@", string); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"%s: AFHTTPRequestOperation error: %@", __FUNCTION__, error); }]; [networkQueue addOperation:operation]; 

对于AFNetworking 3.x:

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 
 please try below answer. +(void)callAFWS:(NSDictionary *)dict withURL:(NSString *)strUrl withToken:(NSString *)strToken withBlock:(dictionary)block { AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; [manager.requestSerializer setValue:strToken forHTTPHeaderField:@"Authorization"]; [manager GET:[NSString stringWithFormat:@"%@/%@",WebserviceUrl,strUrl] parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (!responseObject) { NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setObject:ServerResponceError forKey:@"error"]; block(responseObject); return ; } block(responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setObject:ServerResponceError forKey:@"error"]; block(dict); }]; } 

使用AFNetworking 3.0,您需要按照以下方式提出请求:

 NSURL * urlStr = [NSURL URLWithString:strURL]; NSDictionary *dictParameters = @{@"user[height]": height,@"user[weight]": weight}; AFHTTPSessionManager * manager = [AFHTTPSessionManager manager]; [manager GET:url.absoluteString parameters:dictParameters success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"PLIST: %@", responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 
 (void)postDatabyAF{ NSString *url; NSDictionary *dict; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingAllowFragments]; [manager POST:url parameters:dict success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) { NSLog(@" operation.responseData %@",operation.responseData); NSLog(@" operation.response %@",operation.response); NSLog(@"statusCode %ld",operation.response.statusCode); } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) { if (error) { } else{ } }]; 

}