天天看點

AFN基本使用02

1. 檔案上傳

// 1.建立一個管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

    // 2.封裝參數(這個字典隻能放非檔案參數)
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"username"] = @"123";
    params[@"age"] = @;
    params[@"pwd"] = @"456";
    params[@"height"] = @;

    // 2.發送一個請求
    NSString *url = @"http://localhost:8080/MJServer/upload";
    [mgr POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        // 在發送請求之前會自動調用這個block
        // 需要在這個block中添加檔案參數到formData中

        /**
         FileURL : 需要上傳的檔案的URL路徑
         name : 伺服器那邊接收檔案用的參數名
         fileName : (告訴伺服器)所上傳檔案的檔案名
         mimeType : 所上傳檔案的檔案類型
         */
        NSURL *url = [[NSBundle mainBundle] URLForResource:@"itcast" withExtension:@"txt"];
        [formData appendPartWithFileURL:url name:@"file" fileName:@"test.txt" mimeType:@"text/plain" error:nil];

        /**
         FileData : 需要上傳的檔案的具體資料
         name : 伺服器那邊接收檔案用的參數名
         fileName : (告訴伺服器)所上傳檔案的檔案名
         mimeType : 所上傳檔案的檔案類型
         */
        //        UIImage *image = [UIImage imageNamed:@"minion_01"];
        //        NSData *fileData = UIImagePNGRepresentation(image);
        //        [formData appendPartWithFileData:fileData name:@"file" fileName:@"haha.png" mimeType:@"image/png"];
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"上傳成功");
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"上傳失敗");
    }];
           

2.

// 1.建立一個管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

    // 2.封裝參數(這個字典隻能放非檔案參數)
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"username"] = @"123";
    params[@"age"] = @;
    params[@"pwd"] = @"456";
    params[@"height"] = @;

    // 2.發送一個請求
    NSString *url = @"http://192.168.15.172:8080/MJServer/upload";
    [mgr POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        NSData *fileData = UIImageJPEGRepresentation(self.imageView.image, );
        [formData appendPartWithFileData:fileData name:@"file" fileName:@"haha.jpg" mimeType:@"image/jpeg"];

        // 不是用這個方法來設定檔案參數
//        [formData appendPartWithFormData:fileData name:@"file"];
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"上傳成功");
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"上傳失敗");
    }];

    // 檔案下載下傳,檔案比較大,斷點續傳技術:普遍所有的HTTP伺服器都支援
    // 檔案上傳,檔案比較大,斷點續傳技術:一般的HTTP伺服器都不支援,常用的技術用的是Socket(TCP\IP、UDP)
           

繼續閱讀