【发布时间】:2021-03-03 15:41:09
【问题描述】:
我有一个这样的 HTTP 请求到我的服务器。
func loginUser( username: String, password: String )->AnyPublisher<UserModel, Error>{
let url = URL( string: "\(Credentials.BASE_URL)auth/login")!
let userSignInModel = SignInModel(username: username, password: password)
return AF.request(url,
method: .post,
parameters: userSignInModel,
encoder: JSONParameterEncoder.default)
.validate()
.publishDecodable(type: UserModel.self)
.value()
.mapError{$0 as Error}
.receive(on: DispatchQueue.main)
.eraseToAnyPublisher()
}
得到这样的回应
self.dataManager.loginUser(username: self.logInUsername, password: self.logInPassword)
.sink { (response) in
print( response )
switch response {
case .failure( let error ):
self.createAlert(with: error.localizedDescription,
for: .loginAlert,
responseCode: error.asAFError?.responseCode)
case .finished:
break
}
} receiveValue: { (userModel) in
self.token = userModel.token
self.userID = userModel.user.id
}.store(in: &cancellableSet)
但问题是我无法从服务器获取错误消息,怎么办?
【问题讨论】:
-
来自服务器的错误消息是什么意思?你的意思是当请求失败并且你想要解析这些失败时有一个替代体?
-
是的,例如错误类似于状态、消息,我想获取它