jsonEncoding

当做Post请求时,如果后端让传值是json类型时,
请求方式一:

   let addDic:Dictionary = ["parentId":"","title":newTitle,"userId":"abc"]
   let request = self.setupPostRequest((addDic as Any as! Dictionary<String, Any>))
                DXHttpTool.shareInstance.postHeaderWithRequest(request: request, finished: { (response) in
          print(response)
                }, failure: { (error) in

                })

    func setupPostRequest(_ addDic:Dictionary<String, Any> ) -> URLRequest {
        var request = URLRequest(url: NSURL.init(string: KAddFolderUrl)! as URL)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request.httpBody = try! JSONSerialization.data(withJSONObject: addDic)
        return request
    }
  func postHeaderWithRequest(request:URLRequestConvertible,finished:@escaping(_ response: AnyObject) -> (), failure:@escaping(_ error: Error)-> ()) {
        Alamofire.request(request).responseJSON { (response) in
            debugPrint(response)
            if response.error == nil {
                switch response.result {
                case .failure(let error):
                    print(error)
                case .success:
                    finished(response.value as AnyObject)
                }
            } else {
                failure(response.error!)
            }
        }
    }

请求方式二:(Moya)

 var task: Task {
        var param : [String : Any] = [:]
        case .postAddFolder(let title,let parentId,let userId):
            switch self {
            param["parentId"] = parentId
            param["title"] = title
            param["userId"] = userId
           return .requestParameters(parameters: param, encoding:JSONEncoding.default)

Alamofire中是这样使用的:
URLEncoding 和URL相关的编码,有两种编码方式:
直接拼接到URL中
通过request的httpBody传值
JSONEncoding 把参数字典编码成JSONData后赋值给request的httpBody
PropertyListEncoding把参数字典编码成PlistData后赋值给request的httpBody

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值