2014-04-04 28 views
0

我有一个关于通过NSMutableURLRequest[formData]发送额外值的快速问题。用[formData]发送额外的数据 - 目标C

更多specificly,这里是我的应用程序请求:

NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" 
                    path:@"downloadFileRipple.php" 
                   parameters:nil 
               constructingBodyWithBlock:^(id <AFMultipartFormData>formData) 
{ 
     [formData appendPartWithFileData:webData 
            name:@"file" 
           fileName:newUsername 
           mimeType:@"video/quicktime"]; 
}]; 

我的问题是我怎么能附上类似,@"link" : videoLink这一要求?

回答

0

可以使用somethink像这样用自己的双手constuct要求:

NSString *boundary = @"---###-----##----##--#----###---BOUNDARY---###"; 
NSMutableData *postBody = [NSMutableData data]; 
NSString *postString = nil; 

postString = [NSString stringWithFormat:@"\r\n--%@\r\n", boundary]; 
postString = [postString stringByAppendingString:@"Content-Disposition: form-data; name=\"api_password\"\r\n\r\n"]; 
postString = [postString stringByAppendingString:apiPass]; 

postString = [postString stringByAppendingString:[NSString stringWithFormat:@"\r\n--%@\r\n", boundary]]; 
postString = [postString stringByAppendingString:@"Content-Disposition: form-data; name=\"file\"\r\n\r\n"]; 
postString = [postString stringByAppendingString:filePath]; 

postString = [postString stringByAppendingString:[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary]]; 

[postBody appendData:[postString dataUsingEncoding:NSUTF8StringEncoding]]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://upload.wistia.com"] 
                 cachePolicy:NSURLRequestReturnCacheDataElseLoad 
                timeoutInterval:60.0f]; 
[request setHTTPMethod:@"POST"];  

[request setValue:@"*/*" forHTTPHeaderField:@"Accept"]; 
[request setValue:[@"multipart/form-data; boundary=" stringByAppendingString:boundary] forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[NSString stringWithFormat:@"%d", postBody.length] forHTTPHeaderField:@"Content-Length"]; 

[request setHTTPBody:postBody];