すべて、iOS 用の RestKit を使用して、JPEG ファイルを Java Web サービスにアップロードしています。これを参考にしました
ファイル アップロード Web サービスを開発するためのチュートリアルで、Web ブラウザから使用すると問題なく動作します。
ただし、RESTKit を使用してファイルをアップロードしようとすると、TOMCAT ログに HTTP/1.1 200 213 ステータス コードが表示され、ファイルがアップロードされません。
これが私のRESTKitコードです:
RKObjectManager* manager = [RKObjectManager sharedManager];
RKObjectLoader* objectLoader = [manager objectLoaderWithResourcePath:@"/fileuploaded" delegate:self];
objectLoader.method = RKRequestMethodPOST;
UIImage *image = [UIImage imageNamed:@"rental_car_bill.jpeg"];
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
// attach image
RKParams *params = [RKParams paramsWithDictionary:(NSDictionary*)objectLoader.params];
RKParamsAttachment *attachment = [params setData:imageData
MIMEType:@"image/jpeg" forParam:@"photo"];
attachment.fileName = @"samplejpeg";
objectLoader.params = params;
objectLoader.targetObject = self;
[objectLoader send];
編集: 上記の実装は機能し、ファイルはアップロードされます。ただし、デリゲート メソッドでは: - (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects
この範囲から外れると、[RKObjectLoader dealloc]; でアプリケーションがクラッシュします。