Swift3.0--使用Alamofire网络请求传参JSON报文

前言:在开发新的项目过程中,总会遇到各种各样之前见过没见过的问题,比如昨天,跟新同事对接口的时候,告诉我不是传的普通方式的parameters,而是JSON报文格式的,对于从来没这么搞过的我是欲哭无泪啊,各种度娘G爷的,最后灵光一闪,搞出来了,特此记录一下!

前提条件:swift3.0 、有接口

我以我们登录接口为例:
在登录按钮的点击事件里面,将url、parameter定义好(定义就不用说了吧)之后,开始写Alamofire网络请求

Alamofire.request(URLString, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
                .validate()
                .responseJSON { response in
                    CK().dismissMask()
                    
                    switch response.result{
                    case .success:
                        if let value = response.result.value{
                            //把得到的JSON数据转为字典
                            complicate(value as AnyObject)
                        }
                    case .failure:
                        DMCAlertCenter.default().postAlert(withMessage: "请求失败")
                        return
                    }
                }

可以看到在encoding的地方我使用的是JSONEncoding,而我们一般用的是URL的编码格式,就这一点是解决这个问题的关键!

现在关于这个的文章不是太多,大多数是写如何将参数(字典)转为json字符串的,因为在找到最终原因之前我也试了那个方法,但是请求的地方就会报错,所以希望这点能帮到遇到同样的问题的朋友。

你可能感兴趣的:(Swift3.0--使用Alamofire网络请求传参JSON报文)