前言:在开发新的项目过程中,总会遇到各种各样之前见过没见过的问题,比如昨天,跟新同事对接口的时候,告诉我不是传的普通方式的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字符串的,因为在找到最终原因之前我也试了那个方法,但是请求的地方就会报错,所以希望这点能帮到遇到同样的问题的朋友。