ObjectiveFlickr图片上传错误

我正在使用ObjectiveFlickr库从我的iPhone应用上传照片到Flickr。 我能够授权应用程序并执行一般请求,但是在尝试上传照片时出现错误。 该照片是要上传的是使用AVFoundation拍摄的图像。 这是相关的代码:

UIImage *image = [[UIImage alloc] initWithData:imageData]; if ([[AppDelegate sharedDelegate].apiContext.OAuthToken length]) { NSData *uploadData = UIImageJPEGRepresentation(image, 1); if (!flickrRequest) { flickrRequest = [[OFFlickrAPIRequest alloc] initWithAPIContext:[AppDelegate sharedDelegate].apiContext]; flickrRequest.delegate = self; flickrRequest.requestTimeoutInterval = 60.0; } [flickrRequest uploadImageStream:[NSInputStream inputStreamWithData:uploadData] suggestedFilename:@"Test" MIMEType:@"image/jpeg" arguments:[NSDictionary dictionaryWithObjectsAndKeys:@"0", @"is_public", nil]]; [UIApplication sharedApplication].idleTimerDisabled = YES; NSLog(@"Can upload photo"); 

flickrRequest对象在.h文件中被定义和@property flickrRequest在上面的代码中。

OFFlickrRequestDelegate方法如下:

 - (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest imageUploadSentBytes:(NSUInteger)inSentBytes totalBytes:(NSUInteger)inTotalBytes { NSLog(@"Success"); } - (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didCompleteWithResponse:(NSDictionary *)inResponseDictionary { NSLog(@"%s %@ %@", __PRETTY_FUNCTION__, inRequest.sessionInfo, inResponseDictionary); } - (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didFailWithError:(NSError *)inError { NSLog(@"%s %@ %@", __PRETTY_FUNCTION__, inRequest.sessionInfo, inError); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[inError description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } 

当我在设备上运行项目时,控制台显示:

 Can upload photo Success Success Success Success flickrAPIRequest:didFailWithError:(null) Error Domain=org.lukhnos.ObjectiveFlickr Code=2147418115 "The operation couldn’t be completed. (org.lukhnos.ObjectiveFlickr error 2147418115.)" 

通过API的文档search,“错误2147418115 ”被定义为“ OFFlickrAPIRequestFaultyXMLResponseError ”。 我不确定这是什么意思。 也奇怪 – “成功”出现四次,当我只是试图上传一张照片。

使用ObjectiveFlickr的“Snap and Run”示例应用程序可以在我正在testing的同一设备上上传照片。 比较我的应用程序和捕捉和运行之间的代码,我没有看到任何可能导致照片不上传的主要区别。

任何帮助将不胜感激。

真奇怪 OFFlickrAPIRequestFaultyXMLResponseError表示返回的数据不能被parsing为XML。 如果示例应用程序SnapAndRun正确运行,而您没有正确运行,则build议在行后面添加一行,直到行NSString *stat = [rsp objectForKey:@"stat"];

 NSString *dataString = [[[NSString alloc] initWithData:[request receivedData] encoding:NSUTF8StringEncoding] autorelease]; NSLog(@"received response: %@", dataString); 

这可能会帮助您找出问题所在(例如,如果是服务器端问题,或者库缺失的响应格式)。

当我得到这个错误,我用查尔斯看看发生了什么事。 Flickr发回一个错误,说签名是无效的。 看着我的请求,我发现我已经颠倒了键和值的顺序(即在我的一个键中有空格,这可能导致了签名错误)。