Alamofire 得到回应
Posted
技术标签:
【中文标题】Alamofire 得到回应【英文标题】:Alamofire Get Response 【发布时间】:2020-03-02 04:45:32 【问题描述】:我在let restResponse = try? JSONDecoder().decode(SelectCourseResponse.self, from: data)
中得到零分,有什么原因吗?
func getMotherLangRequest()
showActivityIndicatory(uiView: view, show: true)
AF.request(NetworkUrl.motherLang_getRequest,
method: .get)
.responseJSON response in
self.showActivityIndicatory(uiView: self.view, show: false)
debugPrint(response)
switch response.result
case .success:
guard let data = response.data else return
let restResponse = try? JSONDecoder().decode(SelectCourseResponse.self, from: data)
if restResponse?.status == 0
else self.showErrorResponse(data: data)
case let .failure(error): print(error)
在这里获取请求
我的 SelectCourseResponse 结构
【问题讨论】:
可以加SelectCourseResponse
struct
吗?
你应该使用responseDecodable
,它会产生一个错误,你可以检查一下你的解析失败的原因。
【参考方案1】:
您的价格、图标和更新日期字段为空,将它们声明为可选,您的代码将正常工作。
【讨论】:
【参考方案2】:我建议使用 do/catch 块并打印出错误。也就是说,您的 JSON 对象中有许多空字段,但您没有在数据结构中将这些字段定义为可选字段。 update_date
、price
和 icon
都应该是可选的。
do
let restResponse = try JSONDecoder().decode(
SelectCourseResponse.self,
from: data
)
process(restReponse)
catch
print("DECODE ERROR: \(error)")
【讨论】:
以上是关于Alamofire 得到回应的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 3 和 Alamofire 4 后没有得到响应
Alamofire.request().responseObject 不返回响应
如何使用参数 swift 3.0 Alamofire 4.0 调用邮政服务?
使用 alamofire 的 post 方法没有得到正确的响应,结果是失败 [关闭]