我正在寻找一份关于使用NSURLConnection异步请求的好教程。我在stackoverflow和Google上寻找过,但没有找到。这可能是与此类似的无数问题的重复。但请指导我正确的教程,我以前使用过ASIHTTPRequest,但以前没有使用过苹果提供的库。
我正在寻找一份关于使用NSURLConnection异步请求的好教程。我在stackoverflow和Google上寻找过,但没有找到。这可能是与此类似的无数问题的重复。但请指导我正确的教程,我以前使用过ASIHTTPRequest,但以前没有使用过苹果提供的库。
我可以为你提供一种自己写的方案,但是我强烈推荐使用AFNetworking。它是NSURConnection / NSURLRequest系统的一个封装,流程更加清晰,而且还支持基本的NSURLRequests / Connections和常规的NSOperationQueues。该库还使用cocoa pods,而且真的非常简洁易用。
NSOperationQueue *mainQueue = [[NSOperationQueue alloc] init];
[mainQueue setMaxConcurrentOperationCount:5];
NSURL *url = [NSURL URLWithString:@"http://192.168.0.63:7070/api/Misc/GetFuelTypes"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:@{@"Accepts-Encoding": @"gzip", @"Accept": @"application/json"}];
[NSURLConnection sendAsynchronousRequest:request queue:mainQueue completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *error) {
NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse *)response;
if (!error) {
NSLog(@"Status Code: %li %@", (long)urlResponse.statusCode, [NSHTTPURLResponse localizedStringForStatusCode:urlResponse.statusCode]);
NSLog(@"Response Body: %@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}
else {
NSLog(@"An error occured, Status Code: %i", urlResponse.statusCode);
NSLog(@"Description: %@", [error localizedDescription]);
NSLog(@"Response Body: %@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}
}];