2017-01-29 20 views
1

として、私はswift3を使用して、そしてAlamofire 4Alamofire - パス文字列配列パラメータ

よ、私はAPIにデータを渡す必要は、APIは、POSTパラメータとして文字列の配列をとります。

Alamofireは、[String:Any]タイプのパラメータのみを受け入れることができます。

どうすればこのAPIを使用できますか?

CODE:

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]にパラメータの種類を変更したときにそれが動作します。しかし、私の場合、私は渡す必要が[文字列]

+0

ようこそスタックオーバーフロー!最初に[ツアー(http://stackoverflow.com/tour)に参加して[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を学んで[最小、完全、および検証可能](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:

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

項目:可能なJSON構造:それはalamofire例では、この行であるhttp://json.org/