こんにちは、マルチパート オブジェクトを受け入れるバックエンドがあります。画像をマルチパート オブジェクトとして投稿し、それをパラメーターとして spring mvc コントローラーに渡すために必要な方向/必要な手順を見つけるのに苦労しています。数え切れないほどの時間、Web を検索してきましたが、まだ理解するのに苦労しています。
基本的に私は iOS 開発者で、Spring バックエンドを持っています。バックエンドに保存されるパラメーターとして必要なため、画像をマルチパート オブジェクトとして送信する必要があります。
について読んでいましAFNetworking
たが、まだ確信が持てません。アプリが設計される前にバックエンドが作成された (バックエンドは契約外) ため、そこにあるものに接続しようとしています。
必要に応じて、さらに情報を提供できます。
私はAnand Kによって以下のコードを試しましたが、今HTTP Status 500
では応答でこれを取得しています:
Request processing failed;
nested exception is org.springframework.web.multipart.MultipartException:
The current request is not a multipart request
他の「ジャンク」と同様に
Adnan Ks の提案に基づく新しい更新*
UIImage *image=[UIImage imageNamed:@"dub.png"];
NSData *imageData=UIImagePNGRepresentation(image);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://website.com/upload/uploadOneBook.app?userID=12345&uploadFile="]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: attachment; name=\"attachement\"; filename=\"%@\";",@"Image.png" ] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// close form
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"returnString=%@",returnString);
また、returnString には以下が含まれます。`HTTP Status 400 - Required MultipartFile parameter 'uploadFile' is not present