Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中使用Alamofire中的查询获取http请求_Ios_Swift_Http_Httprequest_Alamofire - Fatal编程技术网

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

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

我正在尝试从我的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的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Önder
https://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)