2009-12-17 131 views
1

我想使用objective-c将图片上传到我的twitter个人资料。我在twitter API中看到,我需要发送一个HTML帖子到http://twitter.com/account/update_profile_image.format,并将图片作为参数发送。我完成了身份验证。我坚持上传。也许有人可以帮我发送图片作为参数?Twitter个人资料图片上传在objective-c

回答

2

您应该使用NSURLRequestsNSURLConnection来执行API请求。如果这是真的,则只需创建一个NSMutableURLRequest,将其设置为Twitter图片上传API网址,并将该方法设置为POST。

然后,你需要创建一个NSData对象来代表你的形象,你可以不使用

NSData *myImageData = [[NSData alloc] initWithData:[myImage CGImage]]; 

我不知道是什么的参数名称是Twitter的上传API,所以为了讨论,我们称之为“图像”。你需要做的下一件事是设置图像数据作为请求的身体为“图像”参数,这样

NSString *bodyString = [NSString stringWithFormat:@"image=%@", [[[NSString alloc] initWithData:myImageData encoding:NSStringUTF8Encoding] autorelease]]; 
[myRequest setBody:bodyString]; 

然后,你可以开始与请求您NSURLConnection的,它应该上传。

+0

@Infinity我有相同的问题,但我没能拿到解。而不是发布一个新问题,是否有可能看到工作代码? – w4nderlust 2011-02-10 01:08:12

+0

嗨,我想同时上传两张照片..我怎么做到这一点.. – Rajneesh071 2012-09-12 12:46:38

0

如果你已经成功开始,那么this post on CocoaDev应该帮助你设置上传。顶部还有一个样本链接。

0

我建议使用ASIHTTPRequest

什么是ASIHTTPRequest?

ASIHTTPRequest是一个易于使用的CFNetwork API封装器,它使Web服务器与Web服务器之间的通信变得更为简单。它是用Objective-C编写的,适用于Mac OS X和iPhone应用程序。

它适合执行基本HTTP请求并与基于REST的服务(GET/POST/PUT/DELETE)交互。包含的ASIFormDataRequest子类可以使用multipart/form-data轻松提交POST数据和文件。

一个例子来看看这个blog post

0

财产以后这样

//见http://groups.google.com/group/twitter-development-talk/browse_thread/thread/df7102654c3077be/163abfbdcd24b8bf

NSString *postUrl = @"http://api.twitter.com/1/account/update_profile_image.json"; 
ASIFormDataRequest *req = [[ASIFormDataRequest alloc] initWithURL:[NSURL 
URLWithString:postUrl]]; 
[req addRequestHeader:@"Authorization" value:[oAuth oAuthHeaderForMethod:@"POST" 
andUrl:postUrl andParams:nil]]; 

[req setData:UIImageJPEGRepresentation(imageView.image, 0.8) 
withFileName:@"myProfileImage.jpg" 
andContentType:@"image/jpeg" forKey:@"image"];  

[req startSynchronous]; 
NSLog(@"Got HTTP status code from Twitter after posting profile image: %d", [req 
responseStatusCode]); 
NSLog(@"Response string: %@", [req responseString]); 
[req release]; 
相关问题