こんにちは、次のコードを含む Mac アプリケーションがあります。
NSURL *url;
url = [NSURL URLWithString:@"http://yfrog.com/api/xauth_upload"];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setDelegate:self];
[request setUseCookiePersistence:NO];
[request setUploadProgressDelegate:self];
[request showAccurateProgress];
[request signRequestWithClientIdentifier:@"w" secret:@"x" tokenIdentifier:@"y" secret:@"z" usingMethod:ASIOAuthHMAC_SHA1SignatureMethod];
[request setPostValue:@"a" forKey:@"key"];
NSData *imageData = [[NSData alloc]initWithContentsOfFile:[draggedFilenames objectAtIndex:0]];
[request setPostValue:imageData forKey:@"media"];
[request startAsynchronous];
しかし、問題は、yfrog サーバーから常に次の応答を受け取ることです。
そのため、画像のアップロードに問題があります。iPhone では、次のように動作します。
[request setData:UIImageJPEGRepresentation(picture, 0.8) withFileName:@"filename.jpg" andContentType:@"image/jpeg" forKey:@"media"];
しかし、これは UIIMageJPEGRepresentation のようなメソッドがないため、cocoa(mac) では機能しません。認証も機能しますが、これが問題になることはありません。このメソッド signRequestWithClientIdentifier について尋ねると、それはここからの asihttprequest+oauth ラッパーからのものです: https://github.com/keybuk/asi-http-request-oauth
では、どうすれば画像を正しくアップロードできますか?
本当にありがとう。