2016-07-09 19 views
5

Tôi hiện đang làm việc trên một dự án trong swift. Tôi đã từng Alamofire cho REST API nhưng để làm cho nó làm việc tôi cần phải vượt qua một tham số trong requestSerializerCách đặt requestSerializer tại Alamofire

Trong AFNETWORKING

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 

Nhưng tôi không thể tìm thấy bất cứ điều gì cho Alamofire. Tôi mới đến nhanh chóng, hãy giúp tôi.

Trả lời

4

Bạn có thể vượt qua đèo JSON dữ liệu như các thông số mã hóa, Encoding trong Alamofire tương đương với AFJSONRequestSerializer

request = Alamofire.request(.POST, webServicesURL, parameters: parameters, encoding: .JSON, headers: self.headers) 

Nếu bạn muốn xử lý dữ liệu JSON vào phản ứng, chỉ cần yêu cầu

//This will give you response in JSON 
request?.responseJSON { response in 
     switch response.result 
     { 
     case .Success: 
      success(response: response.result.value) 
     case .Failure(let error): 
      failure(error: error) 
     } 
    } 

requestJSON tương đương đến AFJSONResponseSerializer trong Alamofire

HOẶC Nếu bạn muốn chuyển các tiêu đề tùy chỉnh, hãy chuyển từ điển dưới dạng

let headers = [ 
    "Content-Type": "application/json" 
] 
//Here we are passing the header in header parameter. 
request = Alamofire.request(.POST, webServicesURL, parameters: parameters, encoding: .JSON, headers: self.headers) 
+0

Ok tôi sẽ dùng thử. –

+1

Một câu hỏi khác nữa (response: response.result.value) 'là khối mặc định của alamofire hoặc tùy chỉnh do bạn tạo. –

+1

Trên thực tế, tất cả phụ thuộc vào bạn, bao giờ tôi đã viết khối thành công và xử lý khối chuyển đổi tương ứng –

0

Bạn có thể sử dụng thẻ encoding trong yêu cầu cho điều này. Sử dụng như,

Alamofire.request("<url>", method: .post, parameters: parameters, encoding: JSONEncoding.default){(response:DataResponse<Any>) in }

Các vấn đề liên quan