如何使用Alamofire网络框架为每个请求添加Authorization标头,并检查响应是否来自服务器401,以便我可以相应地执行逻辑,并提供某种登录视图。
我是否需要创建一种包装Alamofire请求的HttpService类?或者是否有更内置的方式?
答案 0 :(得分:0)
为HTTP Basic Auth添加授权标头并检查状态代码非常简单:
Alamofire
.request(...)
.authenticate(user: "username", password: "password")
.response { response in
if let status = response.response?.statusCode, status == 401 {
// got a 401 response
}
}
答案 1 :(得分:0)
根据您的要求,我个人更愿意有一个中级课程来调用Alamofire的方法。
为此,您可以在每个Web服务调用上添加auth标头。
以下是中级班的例子。
WebClient.swift
class WebClient: SessionManager {
static let sharedManager = WebClient()
func responseRequest(_ url: String, method: Alamofire.HTTPMethod, parameter: Parameters? = nil, encoding: ParameterEncoding, header: HTTPHeaders? = nil, completionHandler: @escaping (DefaultDataResponse) -> Void) -> Void {
self.request(url, method: method, parameters: parameter, encoding: encoding, headers: header).response { response in
completionHandler(response)
}
} }
您可以根据需要修改上述类,也可以直接在每个Web服务调用的请求方法中传递头文件。