2016-08-10 7 views
0

私は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 
     } 
    }]; 

enter image description here

コードとエラー:

{ "ステータス": "0"、 "メッセージ": "ユーザIDを入力してください"}

POSTMANで成功:

{ "ステータス": "1"、 "メッセージ": "アクションが正常に実行。"}

P.S.上記のコードの "value"はNSDictionaryです。

どこが間違っているのでしょうか?

+0

こんにちは、念のために、値がキーbuzzyuser_id(なしタイプミス、無大文字)に関連付けられている有効なのuser_idが含まれていますか? –

+0

"value"には "buzzyuser_id"が含まれていますか? –

+0

@FlorianBurel、ありがとうございますが、タイプやその他のケースはありません。何度も何度もすべてをチェックしました。郵便配達では、それは同じパラメータで適切に動作します。 – Hemang

答えて

0

編集:

[formData appendPartWithFormData:[[NSMutableData alloc] initWithData:[[NSString stringWithFormat:@"buzzymain_category"] dataUsingEncoding:NSUTF8StringEncoding]] name:@"buzzymain_category"]; 
[formData appendPartWithFormData:[[NSMutableData alloc] initWithData:[[NSString stringWithFormat:@"buzzymain_title"] dataUsingEncoding:NSUTF8StringEncoding]] name:@"buzzymain_title"]; 
[formData appendPartWithFormData:[[NSMutableData alloc] initWithData:[[NSString stringWithFormat:@"buzzyuser_id"] dataUsingEncoding:NSUTF8StringEncoding]] name:@"buzzyuser_id"]; 
+0

@Hemangその辞書をコードに追加できますか? –

+0

@Hemangあなたのリクエストをエンコードしてみてください。私は自分の答えを編集しました。 –

+0

NSJSONReadingAllowFragmentsを追加しましたか? –

関連する問題