设置AFNetworking网络请求的超时时间
游贤明 2016-04-15 14:17:23 浏览4112 网络
IOS,
重要, 设置AFNetworking网络请求的超时时间
也许大家使用的时候已经察觉到,设置AFNetworking的超时时间并不管用,但可以用特殊的方式来处理。
以下是笔者基于AFNetworking2.5.0封装的GET,POST请求用方法。
POST请求
-
(AFHTTPRequestOperation )GETMethod:(NSString )URLString parameters:(id)parameters success:(void (^)(AFHTTPRequestOperation operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation operation, NSError *error))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// 设置超时时间 [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; manager.requestSerializer.timeoutInterval = 10.f; [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
AFHTTPRequestOperation httpOperation = [manager GET:URLString parameters:parameters success:^(AFHTTPRequestOperation operation, id responseObject) { if (success) { success(operation, responseObject); } } failure:^(AFHTTPRequestOperation operation, NSError error) { if (failure) { failure(operation, error); } }];
return httpOperation; }
GET请求
-
(AFHTTPRequestOperation )POSTMethod:(NSString )URLString parameters:(id)parameters success:(void (^)(AFHTTPRequestOperation operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation operation, NSError *error))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
// 设置超时时间 [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; manager.requestSerializer.timeoutInterval = 10.f; [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
AFHTTPRequestOperation httpOperation = [manager POST:URLString parameters:parameters success:^(AFHTTPRequestOperation operation, id responseObject) { if (success) { success(operation, responseObject); } } failure:^(AFHTTPRequestOperation operation, NSError error) { if (failure) { failure(operation, error); } }];
return httpOperation; }
发表评论