2017-06-01 55 views
0

我有一個迅速要求alamofire和我不知道爲什麼它是扔Extra Argument 'Method' in CallAlamofire 4.4.0:在呼叫額外的參數爲「方法」:不知道什麼是投擲的錯誤

Alamofire.request(
       URL(string: "https://api.io"), 
       method: .post, 
       parameters: [ 
        "grant_type": "client_credentials", 
        "client_id": "user00941", 
        "client_secret": "ILGddu8y8g7qW" 
       ], 
       encoding: .urlEncodedInURL 
       ).response { 

        request, response, data, error in 

        let json = JSON(data: data!) 

        print("OAuth 2 token obtained from API: \(json["access_token"])") 

        let token = "Bearer \(json["access_token"].stringValue)" 

      } 

我一直看着各種其他帖子,但似乎無法找到一個適合我的代碼的解決方案。

回答

1

your original code的問題是,你正在使用的argument labelurl即使Alamofire.request function signature省去了它:

public func request(
    _ url: URLConvertible, 
    method: HTTPMethod = .get, 
    parameters: Parameters? = nil, 
    encoding: ParameterEncoding = URLEncoding.default, 
    headers: HTTPHeaders? = nil) 
    -> DataRequest 

刪除url:從您的函數調用會照顧認爲錯誤的,但斯威夫特應該再提醒你一個「可選類型的URL值」? [不]未打開。「雖然你可以使用forced unwrapping提取網址的價值,我會建議使用optional binding代替:

if let url = URL(string: "https://api.io") { 
    Alamofire.request(
        URL(string: "https://api.io"), 
        method: .post, 
        parameters: [ 
         "grant_type": "client_credentials", 
         "client_id": "user00941", 
         "client_secret": "ILGddu8y8g7qW" 
        ], 
        encoding: .urlEncodedInURL 
        ).response { 
         request, response, data, error in 

         let json = JSON(data: data!) 

         print("OAuth 2 token obtained from API: \(json["access_token"])") 

         let token = "Bearer \(json["access_token"].stringValue)" 
        } 
} 

或者,你可以使用一個guard聲明通過您的代碼,以保持一個Golden Path

guard let url = URL(string: "https://api.io") else { 
    return 
} 
+0

感謝您的幫助,但是這並沒有工作.. :( –

+0

你現在得到一個不同的錯誤 –

+0

不......一樣的:?在呼叫 –

0

此代碼有幾個錯誤。編碼參數需要設置爲JSONEncoding.default而不是.urlEncodedInURL

除此之外,request, response, data, error in需要更改爲response in。要獲取數據和錯誤使用response.dataresponse.error

相關問題