问题标签 [alamofire-request]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 使用 Alamofire 重试计数刷新令牌并快速重试请求
我正在使用Alamofire
集成 API 调用、处理错误代码和特别是状态代码错误,例如401
和403
. 我还创建了该getRefreshToken()
函数,如果出现错误,它将刷新令牌。
我面临的问题Alamofire.retryCount
并以正确的方式重复请求?我看过不同的参考资料,但我无法弄清楚我是如何整合到我的主要方法中的。
更新:添加getRefreshToken()
代码。
我的代码:
getRefreshToken 函数:
参考:
ios - 在 Alamofire 中处理超时
我想用 Alamofire 处理超时错误,如下所示。
用户通过按下按钮发起请求
如果发生超时,它将显示带有 2 个按钮的自定义视图消息(取消和重试)
如果用户按下 retry_button 请求应该重试
我已经为 Alamofire 配置做了一个通用类并添加了Interceptor Protocol
但我认为请求会在没有用户交互的情况下自动重试。
我的代码如下:
感谢您抽出宝贵的时间至少阅读我的问题。
swift - 如何将 JSON 数据保存到我的本地主机中?http post响应说“200”
由于http post响应显示“200”,这表明请求成功但没有成功上传新数据。如果数据确实被上传,它会打印出“201”。我认为我的本地主机网络服务器可能有问题。
localhost 本质上是一个 JSON 文件,其中包含如下坐标:
谢谢 - 所有输入都表示赞赏:)。
swift - 将 Alamofire 完成处理程序转换为 Async/Await | 斯威夫特 5.5,*
我有当前有效的功能。我将它与完成处理程序一起使用:
如何将其转换为 swift 5.5 的新异步/等待功能?
这是我尝试过的:
但是我没有在 print 语句的末尾得到值。
我有点迷失在这个过程中,我想转换我的旧函数,这个例子会有很大帮助。
编辑:
下面的答案有效,但我在 Alamofire 团队实现异步时找到了自己的解决方案:
ios - Alamofire 堆叠响应
我正在使用 Alamofire 与我的 API 进行通信,并且我正在使用 RequestInterceptor 来捕获未经授权的请求或刷新 JWT 令牌。当一切顺利时,完全没有问题,但是如果响应不好(400,401),Alamofire 会尝试刷新令牌并再次发送请求。有一个奇怪的行为,因为它失败并出现序列化错误:
它基本上读了两次相同的答案,并告诉我它不是 JSON 可序列化的。我绝对确定服务器只返回一个像 JSON 这样的响应,完全奇怪的是,Alamofire 在任何时候都这样做,一旦它返回成功序列化的主体,第二次它在序列化时失败。这是我正在使用的代码:
此外,我尝试向验证添加多个状态代码,但没有任何帮助。
当我曾经.responseString
有任何想法时,我只能看到一次响应,这也很奇怪。
swift - Alamofire如何维护请求顺序?
我使用单个串行队列作为根队列/请求/序列化队列
但是,这些请求似乎是按照创建顺序的随机顺序完成的
完成打印到控制台:
[]中的数字代表创建顺序 PS:序列化的时候顺序也是错误的
队列是串行的,但结果看起来像并发的
如何维护请求和结果的 FIFO 顺序
swift - 从 'AFError' 到 'AFError' 的条件转换总是成功
我正在使用 Alamofire,在执行获取请求后,我正在处理错误:
问题:
在行if let error = error as? AFError {
Xcode 有一个警告:
如何修复(首选)或使该警告静音?
我试过:
像这样删除它:
但它说:
谢谢
swift - 使用 Alamofire 的通用闭包 API 调用
我创建了一个网络管理器,我在其中发送请求并获得成功结果,如下所示:
后来我在我的 viewModel 中使用它,到目前为止效果很好。
我想要做的是,摆脱 viewModel 中调用的函数。(例如:上面的 movieDetailAPIHandler()。)
我的意思是,创建一个 APIHandler 类,我在其中调用 NetworkManager 的请求函数,并在那里处理每种响应类型。
下面的 APIHandlers 类是我想要做的。我还创建了一个名为 ServiceURL 的枚举,它根据 apiHandler() 函数的输入带来相关的 url,如下所示:
到目前为止一切看起来都不错,但是当我尝试调用 apiHandler() 函数时,编译器给我错误消息“类型'CastResponse.Type'不能符合'Decodable'”除此之外,xcode 不知道我的请求类型是什么。 (查看下图。)
我的 viewModel 中的 APIHandler 函数:
所以我尝试做一个通用的 apiHandler 函数,我可以将它与枚举和不同的响应类型一起使用,这样我就可以在每个模块中使用它。
我能做些什么来实现这一目标?谢谢。
swift - Alamofire 同步请求
我正在尝试使用 Alamofire 5 对后端进行登录调用。问题是当我进行调用时,我需要一个值来返回控制器以验证凭据。
所以,问题是 Alamofire 只进行异步调用,所以我需要使其同步。我看到了一个使用信号量的解决方案,但我不知道如何实现它。
这是我找到的解决方案:
而且,这是我的请求代码: