在Swift中的Alamofire中使用查询获取http请求

时间:2017-04-07 10:11:12

标签: ios swift http httprequest alamofire

我试图从我的mongodb数据库中获取mLab服务中的数据。我可以从浏览器成功发出请求,并使用下面的代码获取数据。

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/

谢谢

1 个答案:

答案 0 :(得分: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)

它更具可读性,您也可以轻松更改参数。

希望有所帮助