【问题标题】:Is Possible to POST array of dictionaries in Afnetworking POST Method?是否可以在 Afnetworking POST 方法中发布字典数组?
【发布时间】:2014-08-21 05:20:04
【问题描述】:

我正在开发一个 iOS 应用程序,将数据发布到 Web 服务并从 Web 服务获取数据。 我正在使用 Afnetworking 将数据发布到 Web 服务。Web 服务以字典数组的形式接受数据,例如

[{"name":"stephen","age":25},{"name":"john","age":35},{"name":"david","age":45},{"name":"roger","age":15}]

需要在请求体中发送,并在请求头中设置Accept application/json。

我检查了一些已经在堆栈溢出中可用的示例,但所有示例都是关于 Post 字典的解释。我的问题是可以使用 Afnetworking 将数组发布到 Web 服务。如果可能的话,请帮助我开发完全符合我要求的代码。

【问题讨论】:

  • 是的,如果你接受一个键的数组
  • @amar 数组对键?你能解释一下吗?
  • 如果您在邮寄中发送它,那么它必须针对一个键值。您将发送一个字典,该字典将具有一个键 :
  • @amar {key: [{"name":"stephen","age":25},{"name":"john","age":35},{"name" :"david","age":45},{"name":"roger","age":15}]} 喜欢这种类型吗?
  • 是的,但你不必这样做 jsonrequestserializer 会为你做的

标签: ios objective-c iphone restkit afnetworking


【解决方案1】:

如果您在单个数组中发送所有字典。首先,您必须对每个字典进行 JSON 序列化,然后将其放入数组中,然后再次 JSON 序列化整个数组。然后只有它会被称为正确的 JSON 格式。这是您可以做到的唯一方法。

【讨论】:

    【解决方案2】:

    我给你的建议是使用 AFJSONRequestSerializer。

    Swift 解决方案:

        let manager = AFHTTPSessionManager(baseURL: URL(string: yourBaseURL))
        manager.requestSerializer = AFJSONRequestSerializer()
        let parameters: [[String: Any]] = [["name": "stephen", "age": 25], ["name": "john", "age": 35],["name": "david", "age": 45]]
        manager.post(requestURL,
             parameters: parameters,
             progress: nil,
             success: { (task, data) in
                // process server response
    
        }, failure: {  (task, error) in
               // process error server  response
        })
    

    AFJSONRequestSerializer 在请求头中将 Content-type 设置为 application/json。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-02
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      相关资源
      最近更新 更多