首页 > 解决方案 > 响应无法序列化,输入数据为零或零长度

问题描述

如果我使用邮递员发出请求,它会响应 OK,但如果我尝试在我的应用程序中使用它,则会返回此错误:

“响应无法序列化,输入数据为零或零长度。”

这就是我在 SwiftUI 上提出请求的方式

        let headers: HTTPHeaders = [
        .authorization(bearerToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Im5yb2NoYSIsImNvcnJlb0VsZWN0cm9uaWNvIjoibmVzdG9yLnJvY2hhQGZvcnRlaW5ub3ZhdGlvbi5teCIsInRpcG9Mb2dpbiI6IjIiLCJqdGkiOiJjOGIwZWQ1MC1hY2UxLTQ2MzItYjQxOS1mZjI0NWEzOTkyYWMiLCJleHAiOjE1ODg3MDAwNzN9.TQxA9c9TzqtDbFJSbnWMIK_vUshdVWG5kUnSN2c4Gk8"),
        .accept("application/json")
           ]


    AF.request("http://192.168.0.14:81/api/visitas/movil/dia-en-curso/usuario/2020/dia/=05%2F05%2F2020", headers:  headers).responseJSON{ response in
  switch(response.result){
        case .success(let response):
            print(response)
        case .failure(let error):
            print(error.localizedDescription)
  }
}

我不知道我做错了什么,因为它与我在 Postman 中的内容相同

标签: getrequestalamofirebearer-token

解决方案


默认情况下,Alamofire 认为返回 200 响应代码但没有数据的响应不正确并产生错误。更新服务器以返回 204 或 205 状态将正确修复它。或者,您可以使用适当的预期空响应代码创建自己的实例,JSONResponseSerializer并使用它来处理响应。

AF.request(...).response(responseSerializer: customSerializer) { response in

}

推荐阅读