ios - 如何在 Alamofire 中使用 UITextField?
问题描述
我最近开始在 URLSession 上使用 Alamofire 只是为了适应它并切换到更易读的简单代码库。我正在创建一个应用程序,其中有一个 UITextField,每当用户写东西并点击返回时,它都会通过 API 搜索特定数据。我现在想先将该数据打印到控制台中,但我不知道该怎么做。如何从我的模型中搜索任何特定数据?
编辑:基本 URL 如下所示:“ https://api.themoviedb.org/3/search/movie?api_key=[API_KEY] ”。要搜索特定标题,我们添加“&query=[电影名称]”。如何将查询的最后一部分添加到用户在文本字段中输入的内容中?
PS:我为我的模型使用了 ObjectMapper。
解决方案
如果我们像这样得到默认的 API 调用响应为 json
"success" : true,
"message" : "successfull"
"data" : {
"field1" : "some data"
}
}
所以我们可以像这样处理这个响应
AF.request(URL(string: "myurl.com")!,
method: .get,
headers: AppConstants.headers)
.validate(statusCode:200..<300)
.validate(contentType:[AppConstants.contentTypeJson])
.responseJSON { (response) in
switch response.result {
case .success(let data):
guard let json = data as? [String:AnyObject] else {
return
}
let isSuccess = (json["success"])?.boolValue ?? false
if isSuccess {
print(json) //You can do something with response
}else{
Data.currentError = (json["message"]) as? String ?? "-"
}
case .failure(let error):
print(error)
}
}
更多信息:https ://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response-handling
推荐阅读
- asp.net - 有什么方法可以在模型中预先定义查询,只要从上下文中调用该模型就运行
- flutter - 如何注册自己的 Flutter 插件?
- linux - 配置 OpenID Connect (OIDC) 身份验证
- javascript - 如何在子进程中使用 pm2?
- node.js - 解析用户上传的 PDF,然后将 PDF 数据写入 JSON
- angular - 我不能在 Angular 12 中迭代对象(只允许使用数组和可迭代对象)
- microsoft-graph-api - 活动项目中缺少类别
- python - webscraping,find()函数不起作用
- excel - 匹配 Excel 的多列并突出显示该值是否完全或部分匹配某些字符
- html - 通过 Checkbox:Checked 更改特定元素的样式