2016-10-25 3 views
1

Alamofire v4를 사용하여 내 헤더로 어떻게 업로드 할 수 있습니까? v3의 경우, 다음 코드와 같은 기능을 자체적으로 만들었지 만 v4에서는 동일한 기능을 수행 할 수 없습니다. 헤더가있는 Alamofire 4 멀티 파트 업로드

static func upload(method: Alamofire.Method, urlString: String, multipartFormData: (data: Alamofire.MultipartFormData) ->(), completionHandler: (
    response: Response<AnyObject, NSError>, statusCode:Int, json:JSON) ->()){ 
     Alamofire.upload(method, urlString, headers: MyRequest.makeHeaders(), multipartFormData: multipartFormData, encodingCompletion: { 
      encodingResult in 
      switch encodingResult { 
      case .Success(let upload, _, _): 
       upload.responseJSON { response in 
        switch response.result { 
        case .Failure: 
         log.error("Upload request failed!!") 
        case .Success: 
         completionHandler(response: response, statusCode: (response.response?.statusCode)!, json:JSON(response.result.value!)) 
        } 
       } 
      case .Failure(let error): 
       log.warning((error as NSError).localizedDescription) 
      } 
     }) 
} 

과 내가 코드를 다음과 같이 시도했지만 그것은

static func upload(_ method: Alamofire.HTTPMethod, urlString: String, multipartFormData: (Alamofire.MultipartFormData) -> Swift.Void, completionHandler: @escaping 
    (_ response: NSDictionary, _ statusCode:Int, _ json:JSON) -> Void){ 

    Alamofire.upload(multipartFormData: multipartFormData, to: urlString, method: method, headers: MyRequest.makeHeaders(), encodingCompletion: { 
     encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       switch response.result { 
       case .failure: 
        log.error("Upload request failed!!") 
       case .success: 
        completionHandler(response: response, statusCode: (response.response?.statusCode)!, json:JSON(response.result.value!)) 
       } 
      } 
     case .failure(let error): 
      log.warning((error as NSError).localizedDescription) 
     } 
    }) 

} 
+0

가능한 중복 : //stackoverflow.com/questions/39630997/alamofire-4-0-upload-multipartformdata-header) –

답변

2

코드 아래 시도 작동하지 않습니다

Alamofire.upload(multipartFormData:{ multipartFormData in 
    multipartFormData.append(unicornImageURL, withName: "unicorn") 
    multipartFormData.append(rainbowImageURL, withName: "rainbow")}, 
    usingThreshold:UInt64.init(), 
    to:"https://httpbin.org/post", 
    method:.post, 
    headers:["Authorization": "auth_token"], 
    encodingCompletion: { encodingResult in 
    switch encodingResult { 
    case .success(let upload, _, _): 
     upload.responseJSON { response in 
      debugPrint(response) 
     } 
    case .failure(let encodingError): 
     print(encodingError) 
    } 
}) 
[Alamofire 4.0 업로드 MultipartFormData 헤더 (HTTP의
관련 문제