web-dev-qa-db-ja.com

呼び出しの追加引数 'method'

最新バージョン(4.0.0)でAlamofireリクエストメソッドを呼び出すときにエラーが発生します。

構文は次のとおりです。

Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: .JSON, headers: [:])

requestParamのタイプは[String:Any]です

52
CMA

問題が発生しました。JSONの代わりにJSONEncoding.defaultを使用する必要があるため、新しい構文は

Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: JSONEncoding.default, headers: [:])
70
CMA

参照先は次のとおりです。 https://github.com/Alamofire/Alamofire/issues/1508#issuecomment-246207682

基本的に、パラメーターの1つが間違ったタイプの場合、Swiftコンパイラーはrequest(urlRequest:URLRequestConvertible)を使用していると想定し、methodextra argumentになります

そのパラメーターをもう一度調べて、すべてが正しいタイプであることを確認してください(Parameters?ParameterEncoding、およびHTTPHeaders

50
netigger

私は同じ問題を抱えていました。問題はパラメータのタイプにあり、タイプは[String:Any]でなければなりません。この変更を行った後、それは私のために働いた。

 Alamofire.request(youUrl, method: .post, parameters: param as? [String: Any], encoding: JSONEncoding.default, headers: [:])
                .responseJSON { response in
18
Xhulio Hasa

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

            }
        }
10
A.G

パラメータのタイプの一部が間違っていることを意味します。これらの値を送信していることを確認してください。

url: String
method: HTTPMethod  (E.g: .post)
parameters: [String:Any]
encoding: ParameterEncoding  (E.g: JSONEncoding.default)
headers: [String: String]
10
Andrea.Ferrando

parametersが[String:Any]であることを確認してください

すなわち

let parameters = ["foo": "bar"]

ない:

let parameters : Parameter = ["foo": "bar"]
7
Ben

データ型が間違っているため、このエラーが発生しています。

パラメータタイプは[String:Any]であり、パラメータタイプはオプションではありません。

ヘッダータイプは[String:String]またはnilである必要があり、ヘッダータイプもオプションではありません。

それが役に立てば幸い。 :-)

5
Mayur Rathod

RequestUrlsがURLタイプではなく文字列であることを確認することでこれを修正しました。また、パラメーターがnilの場合のパラメーター引数を削除しました。

例えば。

Alamofire.request(requestUrl, method: .get, encoding: URLEncoding.default)

4
Phil Hudson

AlmofireメソッドはSwift 3で次のように変更されました。

  1. パラメータの順序を変更します(URL、次にメソッドタイプ)。
  2. Encoding Enumを「JSONEncoding.default」などに変更します。
3
Ahmed Lotfy

これは非常によく似た関数のファミリであり、異なる関数を使用しようとしているとコンパイラに思わせます。指定する引数がすべて、予期される正しいタイプであることを再確認してください。たとえば、ヘッダーを持つバリアントに[String:Any]を渡していましたが、[String:String]を予期しており、同じエラーが発生しました。

3
Matjan

これは、imが任意のパラメーターでオプション変数を使用しているためです。

2
SoliQuiD

私は同じ問題に直面していましたそして、以前にここに投稿したようにすべての答えを試してみてください、そしてこの問題の解決策と理由を得ました。

これは、リクエストで解析された間違ったオブジェクトを渡すために発生し、最終的に解決策-

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にパラメータはありません。

2
Abhishek Mishra

私の問題は、アンラップされていないヘッダーのオプションのパラメーターにありました。

1
Jakub Vodak

すべてのパラメーターが正しい形式になっていることを確認してください。最も重要なことは、パラメーターが[String:Any]タイプの配列でなければならないことです。

0
Suraj Gaur
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)
            }
        }
0
CSE 1994