2017-07-16 52 views
0

我在Swift 3中爲iOS和api構建了一個小應用程序我正在爲獲取應用程序的數據而耗費的cURL請求。 API的 捲曲請求如下:如何使用Alamofire使用以下參數進行API調用(Mashape)?

//  curl -X POST --include 'https://myApi.mashape.com/' \ 
    //  -H 'X-Mashape-Key:APIKEY' \ 
    //  -H 'Content-Type: application/json' \ 
    //  -H 'Accept: application/json' \ 
    //  --data-binary '{"parameter1":"value","parameter2":"value"}' 

使用夫特和Alamofire,這是API調用林製作使用POST方法來獲取數據。

func networkFunction(completed: @escaping DownloadComplete) { 


    let headers: HTTPHeaders = [ 
     "X-Mashape-Key":"APIKEY", 
     "Content-Type":"application/json", 
     "Accept": "application/json" 
    ] 
    let parameters: Parameters = [ 
     "parameter1" : "value", 
     "parameter2" : "value" 
    ] 
    Alamofire.request("https://myApi.mashape.com",method: .post,parameters: parameters, headers: headers).responseJSON 
     { response in 

      print("Request: \(String(describing: response.request))") // original url request 
      print("Response: \(String(describing: response.response))") // http url response 
      print("Result: \(response.result)") 

      let result = response.result 
      print(response.description) 

      if let dict = result.value as? Dictionary<String , AnyObject> { 
       if let parameter1 = dict["parameter1"] as? String { 
        self._parameter1= parameter1 

       } 
       if letparameter2 = dict["parameter2"] as? String { 
        self._parameter2 = parameter2 
        print(parameter2) 
       } 
      } 
     completed() 
     } 

    } 

當我這樣做時,我得到一個錯誤在控制檯作爲一個錯誤的請求。 我試過改變函數調用,但結果是一樣的。上面的API調用出了什麼問題?

編輯:我在下面的答案中添加了解決方案。

+0

看來你不使用結束路徑,就絕對URL。檢查您是否正在使用正確的網址與端點,如「https:// myApi.mashape.com/someEndpoint」。 – kathayatnk

回答

0

我發現基於這樣的事實的錯誤:

  1. 參數的順序是不正確的
  2. 我已經省略了添加JSON編碼參數。

最後調用與變化如下:

Alamofire.request("https://myAPI.mashape.com/beta",method: .post,parameters: parameters,encoding: JSONEncoding.default, headers: headers).responseJSON 
     { response in 
      ... 
      ... 
      ... 
     } 
0

替換您的代碼行..

Alamofire.request(URLRequest(url: URL(string:"https://myApi.mashape.com")!),method: .post,parameters: parameters, headers: headers).responseJSON 
相關問題