问题标签 [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.

0 投票
0 回答
159 浏览

ios - 使用 Alamofire 重试计数刷新令牌并快速重试请求

我正在使用Alamofire集成 API 调用、处理错误代码和特别是状态代码错误,例如401403. 我还创建了该getRefreshToken()函数,如果出现错误,它将刷新令牌。

我面临的问题Alamofire.retryCount并以正确的方式重复请求?我看过不同的参考资料,但我无法弄清楚我是如何整合到我的主要方法中的。

更新:添加getRefreshToken()代码。

我的代码:

getRefreshToken 函数:

参考:

0 投票
1 回答
106 浏览

ios - 在 Alamofire 中处理超时

我想用 Alamofire 处理超时错误,如下所示。

  1. 用户通过按下按钮发起请求

  2. 如果发生超时,它将显示带有 2 个按钮的自定义视图消息(取消和重试)

  3. 如果用户按下 retry_button 请求应该重试

我已经为 Alamofire 配置做了一个通用类并添加了Interceptor Protocol

但我认为请求会在没有用户交互的情况下自动重试。

我的代码如下:

感谢您抽出宝贵的时间至少阅读我的问题。

0 投票
0 回答
65 浏览

swift - 如何将 JSON 数据保存到我的本地主机中?http post响应说“200”

由于http post响应显示“200”,这表明请求成功但没有成功上传新数据。如果数据确实被上传,它会打印出“201”。我认为我的本地主机网络服务器可能有问题。

localhost 本质上是一个 JSON 文件,其中包含如下坐标:

谢谢 - 所有输入都表示赞赏:)。

0 投票
3 回答
3371 浏览

swift - 将 Alamofire 完成处理程序转换为 Async/Await | 斯威夫特 5.5,*

我有当前有效的功能。我将它与完成处理程序一起使用:

如何将其转换为 swift 5.5 的新异步/等待功能?

这是我尝试过的:

但是我没有在 print 语句的末尾得到值。

我有点迷失在这个过程中,我想转换我的旧函数,这个例子会有很大帮助。

编辑:

下面的答案有效,但我在 Alamofire 团队实现异步时找到了自己的解决方案:

0 投票
1 回答
37 浏览

swift - Alamofire 并从服务器下载图像 [已解决]

我需要从 URL 下载图像作为数据并将其重新创建为UIImage(data:). 问题是,Alamofire 在第一次请求时只下载少量图像数据:在此处输入图像描述

在我对我的 API 进行新调用后,会下载整个图像:

在此处输入图像描述

我真的不明白为什么会这样。第一个请求总是无法下载所有数据。这是我用来从 URL 下载数据的代码:

0 投票
0 回答
31 浏览

ios - Alamofire 堆叠响应

我正在使用 Alamofire 与我的 API 进行通信,并且我正在使用 RequestInterceptor 来捕获未经授权的请求或刷新 JWT 令牌。当一切顺利时,完全没有问题,但是如果响应不好(400,401),Alamofire 会尝试刷新令牌并再次发送请求。有一个奇怪的行为,因为它失败并出现序列化错误:

它基本上读了两次相同的答案,并告诉我它不是 JSON 可序列化的。我绝对确定服务器只返回一个像 JSON 这样的响应,完全奇怪的是,Alamofire 在任何时候都这样做,一旦它返回成功序列化的主体,第二次它在序列化时失败。这是我正在使用的代码:

此外,我尝试向验证添加多个状态代码,但没有任何帮助。

当我曾经.responseString有任何想法时,我只能看到一次响应,这也很奇怪。

0 投票
1 回答
52 浏览

swift - Alamofire如何维护请求顺序?

我使用单个串行队列作为根队列/请求/序列化队列

但是,这些请求似乎是按照创建顺序的随机顺序完成的

完成打印到控制台:

[]中的数字代表创建顺序 PS:序列化的时候顺序也是错误的

队列是串行的,但结果看起来像并发的

如何维护请求和结果的 FIFO 顺序

0 投票
1 回答
63 浏览

swift - 从 'AFError' 到 'AFError' 的条件转换总是成功

我正在使用 Alamofire,在执行获取请求后,我正在处理错误:

问题:

在行if let error = error as? AFError {Xcode 有一个警告:

如何修复(首选)或使该警告静音?

我试过:

像这样删除它:

但它说:

谢谢

0 投票
0 回答
23 浏览

swift - 使用 Alamofire 的通用闭包 API 调用

我创建了一个网络管理器,我在其中发送请求并获得成功结果,如下所示:

后来我在我的 viewModel 中使用它,到目前为止效果很好。

我想要做的是,摆脱 viewModel 中调用的函数。(例如:上面的 movieDetailAPIHandler()。)

我的意思是,创建一个 APIHandler 类,我在其中调用 NetworkManager 的请求函数,并在那里处理每种响应类型。

下面的 APIHandlers 类是我想要做的。我还创建了一个名为 ServiceURL 的枚举,它根据 apiHandler() 函数的输入带来相关的 url,如下所示:

到目前为止一切看起来都不错,但是当我尝试调用 apiHandler() 函数时,编译器给我错误消息“类型'CastResponse.Type'不能符合'Decodable'”除此之外,xcode 不知道我的请求类型是什么。 (查看下图。)

我的 viewModel 中的 APIHandler 函数:

所以我尝试做一个通用的 apiHandler 函数,我可以将它与枚举和不同的响应类型一起使用,这样我就可以在每个模块中使用它。

我能做些什么来实现这一目标?谢谢。

截图

0 投票
0 回答
12 浏览

swift - Alamofire 同步请求

我正在尝试使用 Alamofire 5 对后端进行登录调用。问题是当我进行调用时,我需要一个值来返回控制器以验证凭据。

所以,问题是 Alamofire 只进行异步调用,所以我需要使其同步。我看到了一个使用信号量的解决方案,但我不知道如何实现它。

这是我找到的解决方案:

而且,这是我的请求代码: