關于AFNetworking

AFNetworking 使用系列之 ~ 2.5.4 版本的一些封裝

  • 使用block
typedef void(^RequestCompletionBlock) (id result, BOOL succeed);

#import <AFNetworking.h>
  • GET 請求
+ (void)commonRequestByGetWithURL:(NSString *)url parameters:(NSDictionary *)parameters completion:(RequestCompletionBlock)completion
{
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer=[AFJSONRequestSerializer serializer];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    manager.requestSerializer.timeoutInterval = 30;
    [manager GET:url parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
        completion(responseObject,YES);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        completion(error,NO);
    }];
    
}
  • POST請求
+ (void)commonRequestByPostWithURL:(NSString *)url parameters:(NSDictionary *)parameters completion:(RequestCompletionBlock)completion
{
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer=[AFJSONRequestSerializer serializer];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    [manager.requestSerializer setValue:@"text/json;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    manager.requestSerializer.timeoutInterval = 30;
    [manager POST:url parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
        completion(responseObject,YES);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        completion(error,NO);
    }];
}

-上傳圖片

+ (void)commonUploadWithUrl:(NSString *)url image:(NSData *)imageData imageName:(NSString *)imageName completion:(RequestCompletionBlock)completion
{
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        NSString *newName = [NSString stringWithFormat:@"%@%@",imageName,@".png"];
        // 上傳圖片
        [formData appendPartWithFileData:imageData name:@"portrait" fileName:newName mimeType:@""];
        
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        completion(responseObject,YES);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        completion(error,NO);
    }];
}

-下載

+ (void)commonDownloadWithUrl:(NSString *)url filePath:(NSURL *)filePath completion:(RequestCompletionBlock)completion
{
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
    
//    NSURL *URL = [NSURL URLWithString:@"http://example.com/download.zip"];
    NSURL *URL = [NSURL URLWithString:url];
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
        NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
        return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
        NSLog(@"File downloaded to: %@", filePath);
        if (error) {
            completion(filePath,NO);
        }else{
            completion(filePath,YES);
        }
    }];
    [downloadTask resume];
}

參考

AFNetworking

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,255評論 4 61
  • AFNetwork是一個輕量級的網絡請求api類庫。是以NSURLConnection, NSOperation和...
    MissLu16閱讀 833評論 0 3
  • # Java 流式輸入 輸出原理 # Java 流的分類 # 輸入 輸出 流 類 # 常見的節點流 和 處理流 #...
    時待吾閱讀 341評論 0 0
  • 完了,又沒什么可寫的了。最近每天都是1點多睡覺,估計長個是不可能的了。雖然是中考結束,想玩啥玩啥。可現在突然不想干...
    sesekoyite閱讀 350評論 0 0
  • 一連幾天的大太陽,把這個青青島城變成了水煮“吐魯番”,記憶裏從未有過的熱,一遍遍刷新著紀錄。 午後...
    歡樂V英雄閱讀 191評論 2 2