Ошибка при вызове метода запроса Alamofire в последней версии (4.0.0).
Синтаксис:
Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: .JSON, headers: [:])
тип requestParam - [String: Any]
Ошибка при вызове метода запроса Alamofire в последней версии (4.0.0).
Синтаксис:
Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: .JSON, headers: [:])
тип requestParam - [String: Any]
У меня возникла проблема, я должен использовать JSONEncoding.default вместо .JSON, поэтому новый синтаксис
Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: JSONEncoding.default, headers: [:])
Я могу ссылаться только на: https://github.com/Alamofire/Alamofire/issues/1508#issuecomment-246207682
В принципе, если один из ваших параметров имеет неправильный тип, быстрый компилятор предположит, что вы используете request(urlRequest:URLRequestConvertible), а затем method является extra argument
Повторите эти параметры и убедитесь, что все имеет правильный тип (Parameters?, ParameterEncoding и HTTPHeaders)
У меня была та же проблема, проблема в типе параметров, она должна быть типа [String: Any]. После того, как я сделал это изменение, это сработало для меня.
 Alamofire.request(youUrl, method: .post, parameters: param as? [String: Any], encoding: JSONEncoding.default, headers: [:])
                .responseJSON { response in
Это означает, что некоторые из типов параметров ошибочны, убедитесь, что вы отправляете эти значения:
url: String
method: HTTPMethod  (E.g: .post)
parameters: [String:Any]
encoding: ParameterEncoding  (E.g: JSONEncoding.default)
headers: [String: String]
Обновлен для Swift 3:
let requestString = "https://thawing-inlet-46474.herokuapp.com/charge.php"
        let params = ["stripeToken": token.tokenId, "amount": "200", "currency": "usd", "description": "testRun"]
        Alamofire.request(requestString,method: .post, parameters: params, encoding: JSONEncoding.default, headers: [:]).responseJSON { (response:DataResponse<Any>) in
            switch(response.result) {
            case .success(_):
                if response.result.value != nil{
                    print("response : \(response.result.value)")
                }
                break
            case .failure(_):
                print("Failure : \(response.result.error)")
                break
            }
        }
Убедитесь, что ваш parameters - [String: Any]
i.e
let parameters = ["foo": "bar"]
Не
let parameters : Parameter = ["foo": "bar"]
Я исправил это, убедившись, что мои requestUrls - это строки, а не типы URL. Также я удалил аргументы параметров, когда параметр был равен нулю.
например.
 Alamofire.request(requestUrl, method: .get, encoding: URLEncoding.default)
Вы получаете эту ошибку из-за неправильных типов данных.
Тип параметров должен быть [String: Any], а тип параметров не должен быть необязательным.
Тип заголовка должен быть [String: String] или nil, а тип заголовка также не должен быть необязательным.
Надеюсь, поможет. :-)
Методы Almofire изменены в Swift 3 следующим образом:
Это семейство функций, которые очень похожи, что заставляет компилятор думать, что вы пытаетесь использовать другую функцию. Дважды проверьте, что ВСЕ аргументы, которые вы поставляете, являются ПРАВИЛЬНЫМ ТИПОМ, который ожидается. Например, я передавал [String: Any] вариант с заголовками, который ожидал [String: String] и получил ту же ошибку.
Это всегда потому, что im использует необязательные переменные в любом из параметров
Я столкнулся с той же проблемой и попробую ответить всем, как ранее здесь, И тогда я получил решение и причину этой проблемы.
Это происходит из-за неправильного анализа объекта в запросе и, наконец, решения -
 theJSONText - строка JSON
 urlStr - строка URL
 let urlEncoadedJson = theJSONText.addingPercentEncoding(withAllowedCharacters:.urlHostAllowed)
    let urls = NSURL(string:"urlStr\(urlEncoadedJson ?? "")")
let method: HTTPMethod = .get
Alamofire.request(urls! as URL, method: method, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
        switch(response.result) {
        case .success(_):
            if response.result.value != nil
            { 
              // write your code here
            }
            break
        case .failure(_):
            if response.result.error != nil
            {
                print(response.result.error!) 
            }
            break
        }
    }
Примечание. В моем URL нет параметров.
Моя проблема заключалась в необязательных параметрах в заголовках, которые не были развернуты.
Alamofire.request(url, method: .post, parameters: parameters, encoding: 
JSONEncoding.default, headers: [:]).responseJSON 
{ response in
            switch (response.result) {
            case .success:
                print(response)
                break
            case .failure:
                print(Error.self)
            }
        }
просто убедитесь, что все параметры в правильном формате, главное, чтобы параметры были в массиве типа [String: Any].