【问题标题】:How to Set requestSerializer in Alamofire如何在 Alamofire 中设置 requestSerializer
【发布时间】:2016-11-11 18:23:54
【问题描述】:

我目前正在swift 从事一个项目。我将Alamofire 用于REST API 但要使其工作,我需要在requestSerializer 中传递一个参数

AFNETWORKING

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];

但我找不到 Alamofire 的任何内容。 我是 swift 新手,请帮帮我。

【问题讨论】:

    标签: ios swift api afnetworking alamofire


    【解决方案1】:

    您可以在请求中使用encoding 标签。使用喜欢,

    Alamofire.request("<url>", method: .post, parameters: parameters, encoding: JSONEncoding.default){(response:DataResponse<Any>) in }

    【讨论】:

      【解决方案2】:

      可以传递JSON数据作为编码参数,Alamofire中的Encoding相当于AFJSONRequestSerializer

      request = Alamofire.request(.POST, webServicesURL, parameters: parameters, encoding: .JSON, headers: self.headers)
      

      如果您想在响应中处理 JSON 数据,只需请求

      //This will give you response in JSON
      request?.responseJSON { response in
              switch response.result
              {
              case .Success:
                  success(response: response.result.value)
              case .Failure(let error):
                  failure(error: error)
              }
          }
      

      requestJSON 相当于 Alamofire 中的 AFJSONResponseSerializer

      或者如果您想传递自定义标题,请将字典传递为

      let headers = [
          "Content-Type": "application/json"
      ]
      //Here we are passing the header in header parameter.
      request = Alamofire.request(.POST, webServicesURL, parameters: parameters, encoding: .JSON, headers: self.headers)
      

      【讨论】:

      • 还有一个 Questionsuccess(response: response.result.value) 是 alamofire 的默认块,或者它是由您自定义的。
      • 其实这一切都取决于你,我如何编写成功块并相应地处理开关块
      • 在我写responseJSON块的方法中,有成功块,并进行相应处理
      猜你喜欢
      • 2017-10-14
      • 2019-06-25
      • 1970-01-01
      • 2017-06-07
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多