2017-04-08 128 views
-1

我想在Alamofire中做一个查询请求,这需要是正确的获取请求链接(它在浏览器中尝试时才起作用)。但是,查询部分出现在请求的最后部分Alamofire。它需要在Ctemp之后。我如何更改订单?在Alamofire中缺少参数值

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

Swift Code;

let parameters: Parameters = ["q" : ["value" : "50.50"], 
       "apiKey": "2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI"] 


Alamofire.request("https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp", method: .get, parameters: parameters,encoding: URLEncoding.default, headers: nil).responseData{ response in 
        print(response.request) 
        print(response.response) 
        print(response.result) 
        } 

response.request这是不正确的,并提取所有的数据,不做查询;

Optional(https://api.mlab.com/api/1/databases/mysignal/collections/Ctemp?apiKey=2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI&q%5Bvalue%5D=50.50) 
+0

[Alamofire请求与PARAMATERS]的可能的复制(http://stackoverflow.com/questions/43293062/alamofire-request-with-paramaters) –

+0

@VinodKumar我发现这个问题不是关于参数的问题它是关于顺序的。 Alamofire中的Reqeust链接不正确。查询部分应该在“Ctemp”之后并且作为“q =” –

回答

1

我不认为在Alamofire的参数侍侯嵌套的字典正确。它是在你显示为输出的url中编码这些参数的url。我建议改变:

let parameters: Parameters = ["q" : ["value" : "50.50"],"apiKey": "2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI"] 

要:

let parameters: Parameters = ["q" : "{\"value\" : \"50.50\"}", "apiKey": "2ABdhQTy1GAWiwfvsKfJyeZVfrHeloQI"] 
+0

它正在工作。谢谢! –