2009-06-16 35 views
0

有沒有人對通過iPhone使用其REST API獲取或發佈到Amazon S3服務有任何建議。它看起來不可能,但我可能正在閱讀錯誤的文檔。用於訪問Amazon S3 REST API的iPhone API

非常感謝您的幫助!

L.

+0

爲什麼看起來不可能?畢竟它只是一個REST API。 – Kekoa 2009-06-16 22:56:25

+0

據我所知,用於訪問S3的唯一基於Cocoa/Cocoa Touch的工具包是ConnectionKit。否則,你會被困在建立自己的,這可能會變得相當複雜的任務。 我可以問你需要哪些API的位? ConnectionKit的當前版本確實支持S3,但有點rope。。我們目前正在編寫2.0版本。如果我們有人專門爲一個協議而工作,那麼我們現在可以把精力集中在目前我們的共同利益上。如果感興趣,請通過http://mikeabdullah.net/other/contact_me.html與我聯繫以獲得進一步討論 – 2009-06-17 23:41:20

回答

3

在一般情況下,我建議使用ASIHttpRequest,它具有很多內置功能(REST兼容)以及許多事情,使得生活比使用NSURLConnection更容易。

它也有S3 support開箱。

2

你應該能夠使用NSURLRequest的東西來做你想做的。

NSMutableData* _data = nil; 

- (IBAction) doIt:(id)sender { 
    NSURL* url = [NSURL URLWithString: @"http://theurl.com/"]; 
    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL: url]; 
    NSURLConnection* con = [NSURLConnection connectionWithRequest: req delegate: self]; 
    NSData* body = [@"body of request" dataUsingEncoding: NSUTF8StringEncoding]; 

    _data = [NSMutableData new]; 
    [req setHTTPMethod: @"POST"]; 
    [req setHTTPBody: body]; 
    [con start]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [_data appendData: data]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    NSString* result = [[[NSString alloc] initWithData: _data encoding: NSUTF8StringEncoding] autorelease]; 

    // process your result here 
    NSLog(@"got result: %@", result); 
} 

這沒有任何錯誤檢查它和_data變量應該存儲在一個實例變量,但總的思路應該爲你工作。您可能還需要設置一些請求標頭來告訴服務器身體數據的編碼等等。