Friday, 23 October 2015

Multiform request in Objective c

MultiForm request with NSUrlConnection.  
 
     //Url
    NSString *urlString = @"";

 //Create Url request
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
   
    NSString *boundary = @"0xLhTaLbOkNdArZ";
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
   
    //Reading the file
    NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"test.zip"];
    NSData *myData = [NSData dataWithContentsOfFile:filePath];
   
    NSMutableData *body = [NSMutableData data];
   
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file\"; filename=\"%filePath.zip\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/zip\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:myData];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
   
    [request setHTTPBody:body];
   
    NSError *returnError = nil;
    NSHTTPURLResponse *returnResponse = nil;
   
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&returnResponse error:&returnError];
    if (returnError) {
        NSLog(@"return Error = %@",returnError);
    }
    NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    NSLog(@"str = %@",str);
   
    if (returnResponse.statusCode == 200) {
        NSLog(@"Success");
        }
    }

//==========================================
 MultiForm request with AFHTTPNetwork 
//Url
    NSString *urlString = @"";

//Create Operation Manager instance
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

//Prepare Parameter for request
    NSDictionary *postData = @{};

    [manager POST:urlString parameters:dictPostData constructingBodyWithBlock:^(id<AFMultipartFormData> formData){
       //Add file to request
 [formData appendPartWithFileData:imageData name:@"file" fileName:@"filename.jpeg"] mimeType:@"image/jpeg"];

 }success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Response: %@", responseObject);
        if(operation.response.statusCode == 200){
            NSLog(@"Success");
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];

No comments:

Post a Comment