Created
June 10, 2009 09:13
-
-
Save minase/127108 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-(NSMutableData*) createHTTPPostBodyWithParameters:(NSDictionary*)params boundary:(NSString*)boundary | |
{ | |
NSAutoreleasePool *pool = [NSAutoreleasePool new]; | |
NSMutableArray *paramsArray = [NSMutableArray array]; | |
NSMutableData *paramsData = [NSMutableData new]; | |
NSString *enter = @"\r\n"; | |
for(id key in params) { | |
[paramsArray addObject:[NSString stringWithFormat:@"--%@%@", boundary, enter]]; | |
[paramsArray addObject:[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"", key]]; | |
// File | |
if(key == @"file") { | |
id filePath = [params valueForKey:key]; | |
id fileName = [filePath lastPathComponent]; | |
id fileData = [NSData dataWithContentsOfFile:filePath]; | |
[paramsArray addObject:[NSString stringWithFormat:@"; filename=\"%@\"%@", fileName, enter]]; | |
[paramsArray addObject:[NSString stringWithFormat:@"Content-Type: application/octet-stream%@%@", enter, enter]]; | |
[paramsArray addObject:fileData]; | |
// not File | |
} else { | |
[paramsArray addObject:[NSString stringWithFormat:@"%@%@", enter, enter]]; | |
[paramsArray addObject:[params valueForKey:key]]; | |
} | |
[paramsArray addObject:[NSString stringWithFormat:@"%@", enter]]; | |
} | |
// source | |
[paramsArray addObject:[NSString stringWithFormat:@"--%@%@", boundary, enter]]; | |
[paramsArray addObject:@"Content-Disposition: form-data; name=\"source\""]; | |
[paramsArray addObject:[NSString stringWithFormat:@"%@%@", enter, enter]]; | |
[paramsArray addObject:[NSString stringWithFormat:@"%@%@", [USER_AGENT valueForKey:@"name"], enter]]; | |
// term | |
[paramsArray addObject:[NSString stringWithFormat:@"--%@--", boundary]]; | |
for(id obj in paramsArray) { | |
if([obj isKindOfClass:[NSString class]]) { | |
[paramsData appendData:[obj dataUsingEncoding:NSUTF8StringEncoding]]; | |
} else { | |
if(![obj isKindOfClass:[NSData class]]) continue; | |
[paramsData appendData:obj]; | |
} | |
} | |
[pool release]; | |
return [paramsData autorelease]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment