Hello guys! I have found on the twitter-site this faq:
> The image update methods require multipart form data. They do not accept a > URL to an image not do they accept the raw image bytes. They instead require > the data to be delivered in the form of a file upload filed as defined in > RFC1867. The content-type attribute of the image field is checked for valid > image type. If you are using PHP/CURL there is a known bug that has since > been fixed in the CVS version of PHP. Most installations are not yet using > this version and therefore fail during image upload. I wrote a little code to upload a profile image to my twitter, but somethings wrong. Here's my code: - (void)uploadProfileImage { UIImage *myImage = [UIImage imageNamed:@"pic1.png"]; NSData *myImageData = [[NSData alloc] initWithData:UIImagePNGRepresentation(myImage)]; NSString *bodyString = [NSString stringWithFormat:@"image=%@", [[[NSString alloc] initWithData:myImageData encoding:NSUTF8StringEncoding] autorelease]]; NSString *apiUrl = @"http://twitter.com/account/ update_profile_image.json"; NSURL *url = [NSURL URLWithString:apiUrl]; NSMutableURLRequest *updateRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:TWITTER_SEND_UPDATE_TIMEOUT]; [updateRequest setHTTPShouldHandleCookies:NO]; [updateRequest setHTTPMethod:@"POST"]; [updateRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [updateRequest setHTTPBody:[bodyString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]]; [updateRequest setValue:[NSString stringWithFormat:@"%d", [bodyString length]] forHTTPHeaderField:@"Content-Length"]; NSLog(@"Trying to connect..."); NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:updateRequest delegate:self]; if (theConnection) { //_receivedData = [[NSMutableData data] retain]; NSLog(@"Connected!"); } else { NSLog(@"Not connected!"); // Inform the user that the download could not be made } } And one more method needed: - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *) challenge { if ([challenge previousFailureCount] == 0) { NSURLCredential *newCredential = [NSURLCredential credentialWithUser:@"username" password:@"password" persistence:NSURLCredentialPersistenceNone]; [[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge]; } else { [[challenge sender] cancelAuthenticationChallenge:challenge]; NSLog(@"Invalid username and password!"); } } And with this method I am receiving the information from twitter: - (void)connection:(NSURLConnection *)connection didReceiveData: (NSData *)data { NSLog([[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease]); } But I am getting some strange error. The response isn't a json answer, it is a html-like answer. Maybe do you have any idea why is that?