最近写一个新项目,项目中全部使用swift还是十分爽的。但是在网络请求中还是遇到了点
问题:
项目采用Moya+Alamofire的网络框架,但是后端的接口在获取参数时使用的是Json格式而不是
我们熟悉的form-data格式。
在网络请求时抓包或者使用postman请求都可以看出区别
json格式:
工具:postman
工具: Charles
form-data格式:
工具:postman
工具:Charles
解决:
使用Moya框架实际需要解决的就是把parameter参数放到了task中, 采用.requestCompositeParameters(bodyParameters: parameters, bodyEncoding: JSONEncoding.default, urlParameters: [:]),主要在于JSONEncoding,这个是task中返回的。
附代码:
case .getKeyServlet(let index, let address):
let parameters: [String : String] = ["index":index,"address":address]
return .requestCompositeParameters(bodyParameters: parameters, bodyEncoding: JSONEncoding.default, urlParameters: [:])