Extra argument 'method' in call

AlamofireSwift3

Alamofire Problem Overview


Getting error while calling Alamofire request method in the latest version(4.0.0).

The syntax is:

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

the type of requestParam is [String:Any]

Alamofire Solutions


Solution 1 - Alamofire

I got the issue, I have to use JSONEncoding.default instead of .JSON, so the new syntax is

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

Solution 2 - Alamofire

I can only refer you to: https://github.com/Alamofire/Alamofire/issues/1508#issuecomment-246207682

Basically, if one of your parameters is of the wrong type, the swift compiler will assume you're using request(urlRequest:URLRequestConvertible) and then, the method is an extra argument

Go over that parameters again and make sure all is of correct type (Parameters?, ParameterEncoding, and HTTPHeaders)

Solution 3 - Alamofire

I was having the same issue, the problem is at parameters type, it should be of type [String: Any]. After I made this change, it worked for me.

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

Solution 4 - Alamofire

It means that some of the parameters type are wrong, check that you are sending these values:

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

Solution 5 - Alamofire

Updated for 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
                
            }
        }

Solution 6 - Alamofire

Make sure your parameters is [String: Any]

i.e

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

Not:

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

Solution 7 - Alamofire

You are getting that error because of the wrong data types.

Parameters Type should be [String : Any] and parameters type shouldn't be an optional.

Header Type should be [String : String] or nil and header type shouldn't be an optional as well.

Hope it helps. :-)

Solution 8 - Alamofire

I fixed this by ensuring my requestUrls are strings, and not URL types. Also I removed parameter arguments for when parameter was nil.

E.g.

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

Solution 9 - Alamofire

Almofire methods changed in Swift 3 as the following:

  1. Reorder parameters (url then method type).
  2. Change Encoding Enum to be "JSONEncoding.default" for example.

Solution 10 - Alamofire

This is a family of functions that are very similar, which makes the compiler think you're trying to use a different function. Double check that ALL of the arguments you're supplying are the CORRECT TYPE that is expected. For example I was passing [String:Any] for the variant with headers, which expected [String:String] and got the same error.

Solution 11 - Alamofire

It is always because im using optional variables in any of the parameters

Solution 12 - Alamofire

I was facing same problem And try with all answer as previously post here, And then I got the solution and reason of this problem .

This is happened due to pass the wrong object parse in the request, and finally the solution --

theJSONText -- JSON string

urlStr -- URL string

 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
        }

    }

Note - There is no param in my URL .

Solution 13 - Alamofire

My problem was in optional parameters in the headers that were not unwrapped.

Solution 14 - Alamofire

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)
            }
        }

Solution 15 - Alamofire

just make sure all the parameters are in the correct format , most importantly the parameters must be in [String:Any] type array.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCMAView Question on Stackoverflow
Solution 1 - AlamofireCMAView Answer on Stackoverflow
Solution 2 - AlamofirenetdiggerView Answer on Stackoverflow
Solution 3 - AlamofireXhulio HasaView Answer on Stackoverflow
Solution 4 - AlamofireAndrea.FerrandoView Answer on Stackoverflow
Solution 5 - AlamofireAlvin GeorgeView Answer on Stackoverflow
Solution 6 - AlamofireBenView Answer on Stackoverflow
Solution 7 - AlamofireMayur RathodView Answer on Stackoverflow
Solution 8 - AlamofirePhil HudsonView Answer on Stackoverflow
Solution 9 - AlamofireAhmed LotfyView Answer on Stackoverflow
Solution 10 - AlamofireMatjanView Answer on Stackoverflow
Solution 11 - AlamofireSoliQuiDView Answer on Stackoverflow
Solution 12 - AlamofireAbhishek MishraView Answer on Stackoverflow
Solution 13 - AlamofireJakub VodakView Answer on Stackoverflow
Solution 14 - AlamofireSrinivasan_iOSView Answer on Stackoverflow
Solution 15 - AlamofireSuraj GaurView Answer on Stackoverflow