尝试 Post 字典到我的后端

Trying to Post a dictionary to my backend

我正在尝试 Post 使用 Alamofire 将 Dictionairy 添加到我的后端:

这是我的代码:

func postCheckUserPhonenumbers(phonenumbers:[String], completionHandler: (([AnyObject?], AnyObject?) -> Void)) {
    let urlString = Constant.apiUrl().stringByAppendingFormat(Constant.apiPostCheckUserPhonenumbers)
    
    let phoneNumbersDictionary = phonenumbers.map({ ["number": [=11=]] })
    
    let json = JSON(phoneNumbersDictionary)
    print(json)
    
    Alamofire.request(.POST, urlString, parameters: phoneNumbersDictionary, encoding: .JSON).validate().responseJSON(completionHandler: {response in
        if response.result.isSuccess{
            if let json = response.result.value {
                let json = JSON(json)
                
            }
        }
        if response.result.isFailure{
            
        }
    })
}

它不会编译,因为 phoneNumbersDictionairy 不符合预期的参数:

然而,

print(json) 打印的正是我 Postman 中的内容。这就是我想要的身材post。 打印语句:

[
  {
    "number" : "85555512"
  },
  {
    "number" : "85551212"
  },
  {
    "number" : "55648583"
  }
]

我的Post男人:

我怎样才能做到这一点?

如错误消息所述,phonenumbers.map({["number": [=10=]]})returns 类型为 [[String:String]] 的数组,如您在我附上的图片中所见。

Alamorfire 需要一个 [String: AnyObejct]? 类型的数组作为参数。

但也许 or Sending json array via alamofire可以帮到你。

我最终使用了这个:

func postCheckUserPhonenumbers(phonenumbers:[String], completionHandler: (([AnyObject?], AnyObject?) -> Void)) {
    let urlString = Constant.apiUrl().stringByAppendingFormat(Constant.apiPostCheckUserPhonenumbers)

    let phoneNumbersDictionary = phonenumbers.map({ ["number": [=10=]] })

    let inputJSON = try? NSJSONSerialization.dataWithJSONObject(phoneNumbersDictionary, options: [])

    let request = NSMutableURLRequest(URL: NSURL(string: urlString)!)
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.HTTPMethod = "POST"
    request.HTTPBody = inputJSON

    Alamofire.request(request).validate().responseJSON(completionHandler: {response in
        if response.result.isSuccess{
            if let value = response.result.value {
                let json = JSON(value)
                let jsonString = json.rawString()
                if let users:Array<User> = Mapper<User>().mapArray(jsonString) {
                    completionHandler(users, nil)
                } else {
                    completionHandler([nil], nil)
                }
            }
        }
        if response.result.isFailure{
            let message = ApiMessage()
            message.message = "No users found"
            completionHandler([nil],message)
        }
    })
}