get - 响应无法序列化,输入数据为零或零长度
问题描述
如果我使用邮递员发出请求,它会响应 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 中的内容相同
解决方案
默认情况下,Alamofire 认为返回 200 响应代码但没有数据的响应不正确并产生错误。更新服务器以返回 204 或 205 状态将正确修复它。或者,您可以使用适当的预期空响应代码创建自己的实例,JSONResponseSerializer
并使用它来处理响应。
AF.request(...).response(responseSerializer: customSerializer) { response in
}
推荐阅读
- reactjs - 高阶组件中功能组件的道具
- python - 如何制作一个可点击的图像,给我点击的坐标?
- java - BufferedReader 在存储中找不到文本文件
- c# - 我将如何跟踪赛车游戏中玩家和 AI 的位置?
- ruby-on-rails - 如何从已安装的 Spree gem 的控制器中扩展我的控制器?
- python - 错误:无法为使用 PEP 517 且无法直接安装的郁金香构建轮子
- mysql - 在sql中对每日数据使用季度数据
- node.js - Laravel,在全新安装上运行 npm run dev 时出错
- python-3.x - 在python中输出水平循环
- angular - 角度按钮不断重复重新渲染