2017-01-29 5 views
1

Я использую swift3 и Alamofire 4.Alamofire - передача строки массива в качестве параметра

Мне нужно передать данные в API, то API принимает массив строк в качестве параметра POST.

Проблема в том, что, как я понимаю, Alamofire принимает только параметры типа [String: Any].

Как я могу использовать этот API?

КОД:

func PostAPIWithHeaders(url: String, parameters: [String], header: HTTPHeaders, callback: @escaping (JSON) ->()) { 

     Alamofire.request(url, method: .post, parameters: parameters, headers: header).responseJSON { (response) in 
      switch response.result { 
      case .success(let value): 
       let json = JSON(value) 
       callback(json) 
      case .failure(let error): 
       print(error) 
      } 
     } 
    } 

Этот код производит ошибку: Extra argument 'method' in call

И когда я изменить тип параметра из [String] в [String:Any] он работает. Но в моем случае мне нужно передать [String]

+0

Добро пожаловать в переполнение стека! Сначала вы можете взять тур (http://stackoverflow.com/tour) и узнать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и создать [ Minimal, Complete и Verifiable] (http://stackoverflow.com/help/mcve) (лучше всего это фрагмент кода на игровой площадке). Добавьте скриншоты, если необходимо. И добавьте важное сообщение об ошибке. Это облегчает нам помощь. – muescha

+1

, пожалуйста, прочитайте документацию alamofire, это хорошо объяснено здесь: https://github.com/Alamofire/Alamofire – muescha

+0

и есть много доступных учебных пособий – muescha

ответ

0

решения:

func PostAPIWithHeaders(url: String, parameters: [String], header: HTTPHeaders, callback: @escaping (JSON) ->()) { 


    let postParameters: Parameters = [ "entpointkeyname": parameters ] 

    Alamofire.request(url, method: .post, parameters: postParameters, headers: header).responseJSON { (response) in 
     switch response.result { 
     case .success(let value): 
      let json = JSON(value) 
      callback(json) 
     case .failure(let error): 
      print(error) 
     } 
    } 
} 

PS: именно эта линия в alamofire примера:

"baz": ["a", 1], 

см: возможные JSON структура: http://json.org/

Смежные вопросы