私はAFNetworking 2.0を使用しています。 multipart-formdataを使ってサーバーにポストリクエストを行う私は3つの文字列のパラメータと一緒にビデオと画像をアップロードしようとしています。AFNetworking 2.0。 - multipart-formdataリクエストが失敗しました
これはPOSTMANクライアントでは問題なく動作していますが、アプリ内では問題ありません。
ここには機能しない正確なコードがあります。
UIImage *image = img;
NSData *imageData = UIImagePNGRepresentation(image);
NSURL *urlVideo = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SampleVideo_1280x720_1mb" ofType:@"mp4"]];
NSData *videoData = [NSData dataWithContentsOfURL:urlVideo];
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:requestURl]];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromArray:@[@"application/json",@"text/html"]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:@"POST" parameters:value constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFileData:imageData name:@"buzzymain_image" fileName:@"photo" mimeType:@"image/png"];
[formData appendPartWithFileData:videoData name:@"buzzymain" fileName:@"video" mimeType:@"video/mp4"];
[formData appendPartWithFormData:[[value valueForKey:@"buzzymain_category"] dataUsingEncoding:NSUTF8StringEncoding] name:@"buzzymain_category"];
[formData appendPartWithFormData:[[value valueForKey:@"buzzymain_title"] dataUsingEncoding:NSUTF8StringEncoding] name:@"buzzymain_title"];
[formData appendPartWithFormData:[[value valueForKey:@"buzzyuser_id"] dataUsingEncoding:NSUTF8StringEncoding] name:@"buzzyuser_id"];
} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSString *json = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"-------\n");
NSLog(@"%@", json);
NSLog(@"-------\n");
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
{
//Something wrong
}
}];
コードとエラー:
{ "ステータス": "0"、 "メッセージ": "ユーザIDを入力してください"}
POSTMANで成功:
{ "ステータス": "1"、 "メッセージ": "アクションが正常に実行。"}
P.S.上記のコードの "value"はNSDictionaryです。
どこが間違っているのでしょうか?
こんにちは、念のために、値がキーbuzzyuser_id(なしタイプミス、無大文字)に関連付けられている有効なのuser_idが含まれていますか? –
"value"には "buzzyuser_id"が含まれていますか? –
@FlorianBurel、ありがとうございますが、タイプやその他のケースはありません。何度も何度もすべてをチェックしました。郵便配達では、それは同じパラメータで適切に動作します。 – Hemang