OC - 17.AFNetworking 원리 및 일반적인 작업
AFN의 6대 모듈
AFURLSessionManager
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
/** * request: * completionHandler: Block * response: * responseObject: * error: */
// 1.
- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler /** * fileURL: */ // 2. NSData - (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(NSData *)bodyData progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler /** * bodyData: */ // 3. - (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler /** * request: */
// 1.
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request progress:(NSProgress * __autoreleasing *)progress destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler /** * progress: * destination: Block * targetPath: * */ // 2. - (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData progress:(NSProgress * __autoreleasing *)progress destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler /** * progress: * resumeData: */
AFHTTPSessionManager
// 1. AFHTTPSessionManager
+ (instancetype)manager
// 2. AFHTTPSessionManager
- (instancetype)initWithBaseURL:(NSURL *)url
/**
* url AFHTTPSessionManager
*/ - (instancetype)initWithBaseURL:(NSURL *)url sessionConfiguration:(NSURLSessionConfiguration *)configuration /** * url configuration AFHTTPSessionManager */
// 1. GET
- (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure /** * URLString: * parameters: * success: Block * responseObject: * failure: Block * error: */ // 2. POST - (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure /** * GET */ - (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters constructingBodyWithBlock:(void (^)(id formData))block success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure /** * block: */
AFN을 사용하여 네트워크 데이터 요청
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// XML
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
// JSON
manager.responseSerializer = [AFJSONResponseSerializer serializer];
XML JSON
//
NSDictionary *params = @{
@"username" : @" ",
@"pwd" : @" ", @"type" : @"XML/JSON" };
[manager GET:@" " parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { //responseObject: NSLog(@" "); } failure:^(NSURLSessionDataTask *task, NSError *error) { //error: NSLog(@" "); }];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
/** NSURLConnection*/
[manager POST:@" " parameters:@{@" " : @" " constructingBodyWithBlock:^(id formData) { // NSData *data = [NSData dataWithContentsOfFile:@" "]; [formData appendPartWithFileData:data name:@"file" fileName:@"test.png" mimeType:@"image/png"]; } success:^(NSURLSessionDataTask *task, id responseObject) { // } failure:^(NSURLSessionDataTask *task, NSError *error) { // }]; /** NSURLSession*/ [manager uploadTaskWithRequest:request fromData:data progress:progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { // }];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
/** NSURLSession*/
[manager downloadTaskWithRequest:request progress:progress destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { // Block } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { // Block }]
전재 대상:https://www.cnblogs.com/funny11/p/4947011.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.