Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>My original answer proved to be incorrect, but the OP posted a link to code that he said fixed his problem. I have copied that code below so that future searchers can find it easily, since I know how frustrating it can be to see your problem described and find a link to the solution only to have that link be dead.</p> <p>Code based on <a href="http://forums.macrumors.com/showthread.php?t=427513" rel="nofollow">http://forums.macrumors.com/showthread.php?t=427513</a>:</p> <pre><code>- (BOOL)sendPhotoToTumblr:(NSString *)photo usingEmail:(NSString *)tumblrEmail andPassword:(NSString *)tumblrPassword withCaption:(NSString *)caption; { //get image data from file NSData *imageData = [NSData dataWithContentsOfFile:photo]; //stop on error if (!imageData) return NO; //Create dictionary of post arguments NSArray *keys = [NSArray arrayWithObjects:@"email",@"password",@"type",@"caption",nil]; NSArray *objects = [NSArray arrayWithObjects: tumblrEmail, tumblrPassword, @"photo", caption, nil]; NSDictionary *keysDict = [[NSDictionary alloc] initWithObjects:objects forKeys:keys]; //create tumblr photo post NSURLRequest *tumblrPost = [self createTumblrRequest:keysDict withData:imageData]; [keysDict release]; //send request, return YES if successful tumblrConnection = [[NSURLConnection alloc] initWithRequest:tumblrPost delegate:self]; if (!tumblrConnection) { NSLog(@"Failed to submit request"); return NO; } else { NSLog(@"Request submitted"); receivedData = [[NSMutableData data] retain]; [tumblrConnection release]; return YES; } } -(NSURLRequest *)createTumblrRequest:(NSDictionary *)postKeys withData:(NSData *)data { //create the URL POST Request to tumblr NSURL *tumblrURL = [NSURL URLWithString:@"http://www.tumblr.com/api/write"]; NSMutableURLRequest *tumblrPost = [NSMutableURLRequest requestWithURL:tumblrURL]; [tumblrPost setHTTPMethod:@"POST"]; //Add the header info NSString *stringBoundary = [NSString stringWithString:@"0xKhTmLbOuNdArY"]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary]; [tumblrPost addValue:contentType forHTTPHeaderField: @"Content-Type"]; //create the body NSMutableData *postBody = [NSMutableData data]; [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; //add key values from the NSDictionary object NSEnumerator *keys = [postKeys keyEnumerator]; int i; for (i = 0; i &lt; [postKeys count]; i++) { NSString *tempKey = [keys nextObject]; [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",tempKey] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithFormat:@"%@",[postKeys objectForKey:tempKey]] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; } //add data field and file data [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"data\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[NSData dataWithData:data]]; [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; //add the body to the post [tumblrPost setHTTPBody:postBody]; return tumblrPost; } </code></pre> <p>I have modified the above code to eliminate some memory issues and to add some parameters to make this a more generic/flexible solution. However, if someone would like the original code as posted on that site, just look through this answer's edit revisions.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload