2016-10-25 10 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 4.0アップロードMultipartFormDataヘッダー](HTTPの

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) 
    } 
}) 
関連する問題