gpt4 book ai didi

ios - Alamofire GET 请求无法正常工作

转载 作者:行者123 更新时间:2023-11-28 15:05:07 25 4
gpt4 key购买 nike

我正在像这样发送 GET 请求。

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!)

https://api.example.com/fruits?apiKey=1&filter%5Bfruit%5D=apple

但是,使用 postman 我可以发送正确的请求并使用以下 URL 请求获得正确的响应。

https://api.example.com/fruits?apiKey=1&filter={"fruit":"apple"}

我不知道如何解决这个问题。我尝试了很多编码类型,但都没有用。任何提示或建议表示赞赏

编辑:我确实使用 alamofire 从服务器得到了响应,但它不是正确的数据,因为参数被忽略了。但是,我从 postman 那里得到的回复是正确的。

最佳答案

早上好,

Since there is no published specification for how to encode collection types, the convention of appending [] to the key for array values (foo[]=1&foo[]=2), and appending the key surrounded by square brackets for nested dictionary values (foo[bar]=baz) [is used].

在我看来,你真的应该避免在查询字符串中传递数组对象。您可以将您的请求更改为:

apiKey=1&fruit=apple

野外水果本身的存在表明响应应该被过滤。

另外:

Instead of using GET, you should consider using POST or PUT and passing values via JSON, XML, or another well-defined format. This could require server side changes obviously.

If server side is out of your control, you should consider manually encoding these parameters instead.

Source

You can find here an example手动编码。

编码愉快!

关于ios - Alamofire GET 请求无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com