send image along with other parameters with AFNetworking

后端 未结 2 715
我在风中等你
我在风中等你 2020-12-05 20:21

I am updating an old application code which used ASIHTTPRequest with AFNetworking. In my case, I am sending a bench of data to API, th

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-05 20:56

    With AFNetworking 2.0.1 this code worked for me.

    -(void) saveImage: (NSData *)imageData forImageName: (NSString *) imageName {
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    
        NSString *imagePostUrl = [NSString stringWithFormat:@"%@/v1/image", BASE_URL];
        NSDictionary *parameters = @{@"imageName": imageName};
    
        NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:imagePostUrl parameters:parameters constructingBodyWithBlock:^(id formData) {
            [formData appendPartWithFileData:imageData name:@"image" fileName:imageName mimeType:@"image/jpeg"];
        }];
    
        AFHTTPRequestOperation *op = [manager HTTPRequestOperationWithRequest:request success: ^(AFHTTPRequestOperation *operation, id responseObject) {
            DLog(@"response: %@", responseObject);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            DLog(@"Error: %@", error);
        }];
        op.responseSerializer = [AFHTTPResponseSerializer serializer];
        [[NSOperationQueue mainQueue] addOperation:op];
    }
    

    If JSON response is needed use:

    op.responseSerializer = [AFJSONResponseSerializer serializer];
    

    instead of

    op.responseSerializer = [AFHTTPResponseSerializer serializer];
    

提交回复
热议问题