ios - Alamofire 请求中的 Post 和 Get 参数

标签 ios swift alamofire

我的项目中遇到一个问题: 这是我的网址

www.someapi.com/product/filter?range[column]=price&range[value][lte]=7000&range[value][gte]=1000&offset=10&limit=10&lang=en

如您所见,有 GET 方法参数

但是我使用了POST方法,所以帖子正文是

{"category_id":4017,"filter":[{"filter_id":"214","value_ids":["7632","6433"]}],"type":"2"}

那么 Alamofire 中是否可以组合 get 和 post 参数?我在他们的github上寻找答案,但没有任何结果。

最佳答案

是的,您可以将查询字符串参数与 POST 正文混合使用。

另请注意,查询参数不是 GET 特定的。只要您的 API 能够处理它,它就会起作用。

这不是 Alamofire 问题,而是与您的 API 设计有关

  • 如果 API 支持 POST 方法,那么您无法发送有效负载。
  • 如果 API 处理查询字符串参数,它们将无法工作。

基本上,您的 API 应该设计为处理查询字符串参数并支持 POST 方法,以便两者都能正常工作。

<小时/>

使用示例:

    let strURL = "www.someapi.com/product/filter?range[column]=price&range[value][lte]=7000&range[value][gte]=1000&offset=10&limit=10&lang=en"

    let payload: [String:Any] = ["category_id":4017,
                                 "filter":[["filter_id":"214",
                                            "value_ids":["7632",
                                                         "6433"]]],
                                 "type":"2"]

    Alamofire.request(strURL,
                      method: .post,
                      parameters: payload,
                      encoding: JSONEncoding.default,
                      headers: nil)

关于ios - Alamofire 请求中的 Post 和 Get 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286603/

相关文章:

ios - 未找到/无法导入 Swift/Obj-C 桥接头

swift - 获取 Swift 4 中 UITextField 的字段名称

ios10 swift3.0 Alamofire上传图片出现错误

swift - Alamofire Not Acceptable 内容类型 json mysql

ios - NSTimer 不会停止

ios - 我只得到字符串解析 XML 的第二部分

ios - 以编程方式将 stackview 与屏幕顶部对齐,不使用硬编码的 CGRect 和最小数量的约束

swift - 我如何从函数返回值使用 Alamofire

ios - NSString 到 NSDate 不起作用

ios - 如何在 iOS 中计算网页 View 内容的高度?