2016-08-10 3 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를 추가 했습니까? –

관련 문제