2009-12-17 129 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]; 
相關問題