Ios Alamofire GET请求不为';t工作不正常
我发出了一个这样的GET请求Ios Alamofire GET请求不为';t工作不正常,ios,swift,get,request,alamofire,Ios,Swift,Get,Request,Alamofire,我发出了一个这样的GET请求 let parameters: Parameters = [ "filter": ["fruit": "apple"] ] Alamofire.request(urlStr, method: .get, parameters: parameters, encoding:URLEncoding.default).responseJSON { response in print(response.request!) }
let parameters: Parameters = [
"filter": ["fruit": "apple"]
]
Alamofire.request(urlStr, method: .get, parameters: parameters, encoding:URLEncoding.default).responseJSON { response in
print(response.request!)
}
但是,GET请求无法正常工作。我认为这些参数根本不正确。这是使用以下代码打印的URL请求print(response.request!)
但是,使用postman,我可以发送正确的请求,并使用以下URL请求获得正确的响应
https://api.example.com/fruits?apiKey=1&filter={“水果”:“苹果”}
我不知道怎么解决这个问题。我尝试了许多编码类型,但都不起作用。任何提示或建议都将不胜感激
编辑:我确实使用alamofire从服务器收到响应,但它不是正确的数据,因为忽略了参数。然而,我从邮递员那里得到的答复是正确的。早上简略
由于没有发布关于如何编码集合类型的规范,因此使用了将[]附加到数组值的键(foo[]=1&foo[]=2)以及将嵌套字典值的键(foo[bar]=baz)附加到方括号中的约定
在我看来,您确实应该避免在查询字符串中传递数组对象。您可以将请求更改为以下内容:
apiKey=1&fruit=apple
田间果实本身的存在表明应过滤响应
此外:
<>而不是使用get,您应该考虑使用JSON、XML或另一个定义良好的格式使用POST或PUT和PASS传递值。显然,这可能需要服务器端更改
如果服务器端超出了您的控制范围,您应该考虑手动对这些参数进行编码。
手动编码的方法快乐编码 谢谢你确认我可能需要做什么。我无法控制服务器端,所以看起来我应该手动编码并将其添加到url的末尾。
apiKey=1&fruit=apple