如何在 Alamofire 中使用 UITextField?
Posted
技术标签:
【中文标题】如何在 Alamofire 中使用 UITextField?【英文标题】:How To Use a UITextField with Alamofire? 【发布时间】:2020-04-07 13:23:01 【问题描述】:我最近开始使用 Alamofire 而不是 URLSession 只是为了适应它并切换到更易读的简单代码库。我正在创建一个应用程序,其中有一个 UITextField,每当用户写一些东西并点击返回时,它都会通过 API 搜索特定数据。我现在想先将该数据打印到控制台中,但我不知道该怎么做。如何从我的模型中搜索任何特定数据?
编辑: 基本 URL 如下所示:“https://api.themoviedb.org/3/search/movie?api_key=[API_KEY]”。 要搜索特定标题,我们添加“&query=[电影名称]”。如何将查询的最后一部分添加到用户在文本字段中输入的内容中?
PS:我的模型使用了 ObjectMapper。
【问题讨论】:
您的意思是要将 Alamofire API 调用响应打印到控制台? 我想使用 Alamofire 从 api 获取数据并将其打印到控制台,而不仅仅是文本字段内的文本。例如,在我的模型中,我创建了不同的参数来表示有关电影的信息。我有标题、描述、发布日期等。例如,我想搜索标题并打印回描述。 【参考方案1】:如果我们得到像这样的 json 格式的默认 API 调用响应
"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
【讨论】:
以上是关于如何在 Alamofire 中使用 UITextField?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift / Alamofire 中使用 multipartFormData?
如何在 Alamofire 中使用 UITextField?
如何在 Alamofire 中使用 NetworkReachabilityManager