【问题标题】:Alamofire: Sending JSON as request parameterAlamofire:发送 JSON 作为请求参数
【发布时间】:2015-10-25 21:44:58
【问题描述】:

我有一个非常长的数组和字符串,我想通过 Alamofire 发送,但我不知道如何发送原始 JSON 作为参数。 JSON 看起来有点像

{
     "skus":["8865594-CS,4387296-CS,1175540-CS...."],
     "listType": "H"
}

与其让它表现得像一个 Swift 数组然后序列化,有没有办法可以将此 JSON 作为参数传递给 Alamofire?

谢谢!

编辑:

我能够在文本编辑器中使用一点魔法来将参数格式化为 Swift 数组的样式(如 var skus = ["abc", ...]),因此我将 skus 和 listType 制作成了字典,根据埃里克的建议。这工作得很好,除了我得到一个状态码:414,这意味着 URL 太长了。

【问题讨论】:

  • @Eric 我确实检查了该问题,但它们从本机数组开始并且不发送另一个变量。我知道我可以很容易地将它放在字典中并以这种方式传递,但我的对象是 JSON,而不是 Swift。
  • Cole,你能给我一个代码示例吗,我相信我可以帮助你:-)
  • @cole 好的,但接受的答案似乎确实是您想要的。 :) 还有 Neo 使用的链接 (stackoverflow.com/questions/31499735/…) 和许多其他相关链接。
  • @Eric,我决定尝试您链接的方式,因为我能够以更友好的方式格式化我的数组,而且我快到了。我已经编辑了我的问题以反映这一点。谢谢!!

标签: ios json swift alamofire


【解决方案1】:

我不知道 Alamofire,但我只是在 Google 上搜索了一下,并在 GitHub 上的自述文件中找到了一些内容......

let parameters = [
    "foo": "bar",
    "baz": ["a", 1],
    "qux": [
        "x": 1,
        "y": 2,
        "z": 3
    ]
]

Alamofire.request(.POST, "http://httpbin.org/post", parameters: parameters)
// HTTP body: foo=bar&baz[]=a&baz[]=1&qux[x]=1&qux[y]=2&qux[z]=3

https://github.com/Alamofire/Alamofire

这里你有一个字典(字典就像一个 JSON)和一个参数,另一个字典(JSON)作为参数的值......

这是你需要的吗?

【讨论】:

  • 好的,我可以尝试将 JSON 数组作为字典的值粘贴进去,看看它是如何工作的。
  • 是的,如果这不是你想要的,请给我留言,我会帮你的
  • @neo 当答案已经存在时,最好将问题“标记”为重复(您的答案是stackoverflow.com/questions/31499735/… 的副本,这很可能确实是该问题的正确链接)
  • 好的,埃里克,对此感到抱歉。我几乎在您发表评论的同时发布了我的答案...我不知道...
  • 您找到了我认为的正确链接。 :) 只是你应该用它标记问题,而不是复制/粘贴答案(反正人们不太喜欢这样)。
猜你喜欢
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 2017-02-13
相关资源
最近更新 更多