2014-02-13 3 views
1

AFNetworking 2.1.0을 사용하여 내 iPad 앱과 내 서버간에 통신합니다. 그래서이 작동하지 않습니다AFNetworking 2.0 : 멀티 파트 POST시 오류 503

[self POST:kAPIPath 
parameters:params 
    success:^(NSURLSessionDataTask *task, id responseObject) { 
        successBlock(responseObject[@"result"]); 
       } 
    failure:^(NSURLSessionDataTask *task, NSError *error) { 
        failureBlock(error); 
       }]; 

을하지만 멀티 파트 부분을 추가 할 때, 내 서버는

request failure. error: Request failed: service indisponible (503)

을 반환합니다 :

나는 AFHTTPSessionManager를 서브 클래스하고 문제없이 다음을 사용

[self POST:kAPIPath 
parameters:params 
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
       [formData appendPartWithFileData:uploadFile 
              name:@"file" 
             fileName:@"photo.jpg" 
             mimeType:@"image/jpeg"]; 
       } 
    success:^(NSURLSessionDataTask *task, id responseObject) { 
        successBlock(responseObject[@"result"]); 
       } 
    failure:^(NSURLSessionDataTask *task, NSError *error) { 
        failureBlock(error); 
       }]; 

하지만이 작업을 수행 할 때도 오류 503이 반환됩니다 (formData는 수정하지 않음).

[self POST:kAPIPath 
parameters:params 
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 

       } 
    success:^(NSURLSessionDataTask *task, id responseObject) { 
        successBlock(responseObject[@"result"]); 
       } 
    failure:^(NSURLSessionDataTask *task, NSError *error) { 
        failureBlock(error); 
       }]; 

또는이 (블록에 대한 무기 호)은 :

[self POST:kAPIPath 
parameters:params 
constructingBodyWithBlock:nil 
    success:^(NSURLSessionDataTask *task, id responseObject) { 
        successBlock(responseObject[@"result"]); 
       } 
    failure:^(NSURLSessionDataTask *task, NSError *error) { 
        failureBlock(error); 
       }]; 

나는 많은 게시물을 읽을 수 있지만이에서 올 수있는 이해할 수 없습니다. 오류 503 의미

503 Service Unavailable The server is currently unavailable (because it is overloaded or down for maintenance).[2] Generally, this is a temporary state. Sometimes, this can be permanent as well on test servers.

그러나 멀티 파트없이 POST를 사용하면 문제가 없습니다. 누군가가 이것이 어디서 올 수 있었는지 생각하고 있습니까?

대단히 감사합니다!

+1

5 백 패밀리 오류는 서버 측에서 다소 문제가 있음을 보여줍니다. –

답변

1

내 문제가 해결되었습니다.

내가 말한 것과 같은 문제인 것 같아서 there라고 생각합니다. AFNetworking 2.0의 멀티 파트 양식 (최근에 알려진 문제 : issue 1398) 인 것 같습니다. 매트 밑에서 제안한 해결 방법을 사용했는데 작동합니다.

답장을 보내 주셔서 감사합니다.

1

당신이 맞았습니다, 다중 양식을 사용하는 방법은 아래에 있습니다. 서버를 확인해 보라고 권합니다. 브라우저에서 직접 다중 형식을 디버그하려면 Postman을 사용해보십시오.

[self POST:kAPIPath 
parameters:params 
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
       [formData appendPartWithFileData:uploadFile 
              name:@"file" 
             fileName:@"photo.jpg" 
             mimeType:@"image/jpeg"]; 
       } 
    success:^(NSURLSessionDataTask *task, id responseObject) { 
        successBlock(responseObject[@"result"]); 
       } 
    failure:^(NSURLSessionDataTask *task, NSError *error) { 
        failureBlock(error); 
       }];