gpt4 book ai didi

swift - 执行身份验证后如何重试请求?

转载 作者:行者123 更新时间:2023-12-04 17:32:39 26 4
gpt4 key购买 nike

我在学习 SwiftCombine通过制作应用程序,尝试解决现实世界的用例。

一个常见的情况是,我正在执行一个请求,而 auth token 已过期。如果请求失败并显示 401,我想刷新 token 。

就像是:

fetchData()
.flatMap { data, response
if response.statusCode == 401 {
refreshToken()
.fetchData()
} else {
Just(data)
}
}
.keepDoingThings()


请记住,这只是伪代码。

我确实尝试了一些东西,但它是一团糟。 :)

如何才能做到这一点?

谢谢!

最佳答案

我尝试将我的 RxSwift 版本移植到Combine,但后者缺少一些关键运算符( retryWhenflatMapFirst )。因此,一种解决方案是将 RxCombine 和 RxSwift 引入您的项目,以便您可以在您的项目中使用我的 RxSwift 解决方案。

这是我的实现:https://medium.com/@danielt1263/retrying-a-network-request-despite-having-an-invalid-token-b8b89340d29

RxCombine:https://github.com/freak4pc/RxCombine

RxSwift:https://github.com/ReactiveX/RxSwift

我不希望这个答案被认为是正确的,但在将必要的运算符添加到组合之前,它可以是一种解决方法。

关于swift - 执行身份验证后如何重试请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com