2017-04-07 51 views
3

我試圖從mongodb數據庫中從mLab服務中抓取數據。我可以通過瀏覽器成功完成請求,並通過下面的代碼獲取數據。在Swift中抓取Alamofire中的http請求

https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?q={"member_id":2}&apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI 

我需要將「member_id」更改爲\「member_id \」以避免出現sytax錯誤。其餘的都是一樣的。但是,它不會在iOS中的Swift中使用Alamofire獲取任何內容。 (我也試過沒有alamofire,與平常的http請求,但仍然不起作用)

如果我嘗試它沒有{"member_id":2}它工作。 我正在做下面的代碼(不工作)獲取;

Alamofire.request("https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?q={\"member_id\":2}&apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI") 

我也嘗試添加參數

let parameters: Parameters = ["member_id": "3"] 
Alamofire.request("https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?q={\"member_id\":3}&apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI", parameters: parameters, encoding: URLEncoding(destination: .methodDependent)) 

這是API的文檔; http://docs.mlab.com/data-api/

謝謝

+0

打印你怎麼做請求和響應解析 –

+0

@OlegGordiichuk我添加它,對不起。 –

+0

@OlegGordiichuk順便說一句,該代碼沒有在alamofire的任何解析響應。只是空白。 –

回答

4

你的請求應該看起來像:

let parameters: Parameters = [ 
    "q": ["member_id": 2], 
    "apiKey": "2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI" 
] 
Alamofire.request("https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp", method: .get, parameters: parameters, encoding: URLEncoding.default) 

這是更具可讀性,也可以很容易地改變參數。

希望它可以幫助

+0

它正在工作,但它提取了該表中的所有數據。不僅僅是成員2. –

+0

@EmreÖnder嘗試將'member_id'設置爲整數不是字符串 –

+0

對,我改變了它。謝謝 – kamwysoc