2016-12-28 42 views
1

어떻게 어떻게 RxAlamofire와 같은 동작/기능을 얻을 수 AlamofireRxAlamofire 포스트 다중 데이터

let URL = try! URLRequest(url: "http://example.com", method: .post) 


Alamofire.upload(multipartFormData: { formData in 
    // multiaprt 
}, with: URL, encodingCompletion: {(result: SessionManager.MultipartFormDataEncodingResult) in 

}) 
  1. 에 예를 들어

    RxAlamofire으로 여러 부분 데이터를 보내?

  2. 또는 Observable? 함수에서이 함수를 래핑하는 방법은?

답변

1

당신은 쉽게 다음과 같이 해당 기능을 포장 할 수 있습니다

func wrapper() -> Observable<SomeResponseType> { 
    return Observable.create { observer in 

     let URL = try! URLRequest(url: "http://example.com", method: .post) 

     Alamofire.upload(
      multipartFormData: { formData in 
       // multiaprt 
      }, 
      with: URL, 
      encodingCompletion: { encodingResult in 

       switch encodingResult { 

       case .success(let upload, _, _): 
        upload.responseJSON { response in 
         // convert response in something of SomeResponseType 
         // ... 
        observer.onNext(response) 
        observer.onCompleted() 
       } 
       case .failure(let encodingError): 
        observer.onError(encodingError) 
       } 
      }) 

     return Disposables.create() 
    } 
}