Ios 在Swift中使用Alamofire中的查询获取http请求
我正在尝试从我的mongodb数据库中从mLab服务获取数据。我可以通过浏览器成功地发出请求,并使用下面的代码获取数据Ios 在Swift中使用Alamofire中的查询获取http请求,ios,swift,http,httprequest,alamofire,Ios,Swift,Http,Httprequest,Alamofire,我正在尝试从我的mongodb数据库中从mLab服务获取数据。我可以通过浏览器成功地发出请求,并使用下面的代码获取数据 https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?q={"member_id":2}&apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI 我需要将“member\u id”更改为“member\u id”,以避免出现sytax错误。其余的都一样。然而,在iOS的S
https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?q={"member_id":2}&apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI
我需要将“member\u id”更改为“member\u id”,以避免出现sytax错误。其余的都一样。然而,在iOS的Swift中使用Alamofire无法获取任何信息。(我也在没有alamofire的情况下尝试过,使用了通常的http请求,但仍然不起作用)
如果我在没有{“member_id”:2}
的情况下尝试它,它会工作。
我正在使用下面的代码进行抓取(不工作)
我还尝试添加参数
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文档;
谢谢您的请求应该是这样的:
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)
它更具可读性,而且您可以轻松更改参数
希望它有助于打印您如何进行请求和解析response@OlegGordiichuk“对不起,我添加了它。”顺便说一下,该代码在alamofire中没有任何解析响应。空白。@EmreÖ你的意思是当你这样尝试
{\'member\u id\':2}
时?@NiravD是的。当我在斯威夫特这样尝试的时候。它在直接http请求中提供可选的find nil错误。它不会在alamofire的空白页中给出任何错误。它正在工作,但它会获取该表中的所有数据。不仅仅是成员2。@EmreÖnder请尝试将member_id
设置为整数Not string仍然获取所有数据。我还试图将其更改为Int,但没有修复。@EmreÖnderhttps://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?q={“member_id”:2}&apiKey=2abdhqty1gawiwfvskfjyezvfrfrheloqi
请求获取正确的数据吗?可能是数据库中的问题,因为它看起来像这样;{“_id”:{“$oid”:“58e769c7f36d2865dded591d”},“id”:44389,“value”:“50.50”,“ts”:“2017-03-06 22:51:35”,“sensor_id”:“temp”,“member_id”:3}
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)