gpt4 book ai didi

ios - 参数键有方括号 Alamofire iOS

转载 作者:行者123 更新时间:2023-11-28 06:14:59 27 4
gpt4 key购买 nike

如何防止 Alamofire 编码(将方括号替换为 %5B%5D)?

我刚才看到有人对此发表评论,但我找不到问题的链接了。我的参数如下所示:

    let parameters: Parameters = [
"xx[firebase_id]" : currentUserId,
"xx[lat]" : latitude,
"xx[lng]" : longitude,
"xx[fcm_key]" : fcmKey
]

我以前遇到过一个非常相似的问题,当时我的参数是一个集合,解决方案只是删除括号,如下所示:

来自:["some_array_param[]": someCollection]

到这个 ["some_array_param": someCollection]

那么回到我的简单问题,我应该只和我的后端开发人员谈谈这个吗?或者有没有办法在我这边解决这个问题(无需手动将参数放入 url)?

最佳答案

这就是我通过对参数进行编码来完成它的方法:

// Remove square brackets for POST request
let parameterEncoding = ParameterEncoding.Custom { requestConvertible, parameters in
let (mutableRequest, error) = ParameterEncoding.URL.encode(requestConvertible, parameters: parameters)
let httpBody = NSString(data: mutableRequest.HTTPBody!, encoding: NSUTF8StringEncoding)!
mutableRequest.HTTPBody = httpBody.stringByReplacingOccurrencesOfString("%5B%5D=", withString: "=").dataUsingEncoding(NSUTF8StringEncoding)
return (mutableRequest, error)
}

然后将编码添加到您的帖子中:

Alamofire.request(.POST, "http://example.com", parameters: ["foo": ["bar1", "bar2"]], encoding: parameterEncoding)

关于ios - 参数键有方括号 Alamofire iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421590/

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