问题标签 [siesta-swift]

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 投票
1 回答
293 浏览

ios - Siesta 框架请求取消

我找不到使用Siesta Framework取消请求的任何方法。这可能吗,怎么做?

0 投票
2 回答
1065 浏览

swift3 - Swift Siesta 获取并发布

我是新来的午睡。如何获取整个数组并传递给我的模型?此外,我如何使用参数发布?在他们的文档中,我找不到任何这些。

0 投票
1 回答
73 浏览

siesta-swift - 通过密码授予使用 Siesta 获取 AuthToken

对 Swift 和 Siesta 来说都是新手...尝试提出“密码”授权类型请求。我使用了位于此处的代码(最底部的块)。我的代码是:

问题是它似乎没有设置 authToken 变量......在对 createAuthToken() 函数中的 $0.jsonDict 变量进行故障排除时,它似乎为空。行注明的印刷品[:]

如果我将其更改为print($0.jsonDict)print($0)我会看到完整的响应,包括“内容”部分,该部分显示了我希望在 jsonDict 中出现的结果

如果重要的话,我的服务器实现是使用 FOSOauthServerBundle 的 Symfony。如果我只是在浏览器中手动执行请求并且就像我说响应的“内容”显示我的令牌一样,所有这些都可以正常工作,我似乎无法通过.jsonDict["access_token"]

0 投票
1 回答
124 浏览

ios - Using Siesta with a non-restful API

I know this is probably a long-shot, but is it possible to use Siesta with a completely non-RESTful API? The API I have to work with (and is not in my control so sadly cannot change) requires every request to be a POST request regardless of whether it is purely retrieving data or not.

I've had a read through the question/answer here which gives me a glimmer of hope, however the big difference between that question and mine is the endpoints of each request. For the API I'm using, they're all the same :(

Every single request must POST to /api/api_post.php, and everything else is specified as a parameter supplied in the request.

Obviously I can roll my own request wrapper to handle this, but I'd love to be able to use some of the functionality provided by Siesta and not have to worry about all the annoyances of dealing with networking. Is there any way of doing this at all, or am I out of luck?

0 投票
1 回答
147 浏览

swift - Swift Siesta 重定向对失败的响应

是否可以使用 Siesta 管道,接收成功响应,对其进行解析,并根据返回将其重定向到失败响应?

我的服务器响应多次返回 HTTP 200,但带有错误消息/标志。

0 投票
0 回答
50 浏览

siesta-swift - 我的资源观察器闭包被调用了两次,出现相同的错误,这是一个错误吗?

我有一个 Siesta 资源,我使用AddObserver. 现在,该资源使用的端点总是返回 404。大多数时候,观察闭包只会被调用一次并出现错误。但是,我有一个日志文件,其中我看到完全相同的错误(相同的时间戳和所有内容)被调用了两次。错误如下所示:

RequestError(userMessage: "Not found", httpStatusCode: Optional(404), entity: Optional(Siesta.Entity<Any>(content: "<h2>404 - Page Not Found</h2><p>The page could not be found.</p>", charset: Optional("utf-8"), headersNormalized: ["access-control-allow-headers": "Content-Type, Authorization", "set-cookie": "connect.sid=s%3APGOwgU4q3fhlxhag0E9Sc1zN_R9jTjH0.IAp%2BfAIfqxqP%2Bt5zZ1f0t1terpWgoRHpQhF%2BfB0gxyw; Path=/; HttpOnly", "etag": "W/\"40-ca3ea152\"", "via": "1.1 vegur", "content-length": "64", "content-type": "text/html; charset=utf-8", "date": "Sun, 17 Sep 2017 01:05:43 GMT", "access-control-allow-methods": "DELETE,GET,PATCH,POST,PUT", "connection": "keep-alive", "x-powered-by": "Express", "vary": "Accept-Encoding", "server": "Cowboy", "access-control-allow-origin": "*"], timestamp: 527303143.37699503)), cause: nil, timestamp: 527303143.37563998)

是否存在我应该两次收到此错误的情况?是否不能保证在这种情况下只调用一次观察者?是bug吗???是 Siesta、网络库还是我的代码中的错误?

0 投票
1 回答
714 浏览

swift - Swift Siesta 访问响应原始数据

我在我的 API 中有一个返回 PDF 文件内容的方法。

如何在成功回调中访问响应的原始数据?

0 投票
1 回答
363 浏览

ios - 将成功的午睡响应标记为错误

我正在使用一个我无法控制的非常奇怪(且令人讨厌)的 API,不幸的是,当发出无效请求时,它不是以 4xx 状态响应,而是以 200 状态响应。

通过此响应,它还将响应正文从通常的 XML 响应更改为纯文本,但不会更改内容类型标头。你可以想象这有多烦人!

我已经让 Siesta 使用 API,而且事实上它根本不是 RESTful,但我不确定如何让下一部分工作 - 处理不成功的请求。

如何将技术上有效且成功的 200 响应转换为错误响应?现在我有以下设置:

当响应实际上是 XML 时,这工作得很好,但是在响应是错误的情况下,我收到以下内容:

或类似的东西。XMLParser 类已经在处理这个问题,并反过来将自己标记为遇到错误,但是我不知道如何让 Siesta 意识到存在错误,并且不调用我的转换器而是将请求标记为失败我可以在其他地方处理错误。

我怎样才能实现我所追求的?

0 投票
1 回答
335 浏览

siesta-swift - 如何用参数装饰请求?

如何装饰所有请求添加到所有请求、自定义参数?

我想将参数键添加到所有请求中。

我试图添加:

但我需要返回请求。

在文档的示例中,它只向正文添加标题而不是参数。

0 投票
1 回答
158 浏览

ios - 在发出网络请求之前,我可以让 Siesta 查看我的持久缓存吗?

我已经开始在后台运行时使用 Siesta,使用 Apple 的后台获取功能。以这种方式运行时要处理的(许多)困难之一是,在某些设备上,操作系统往往会经常终止我的进程。我试图让我的处理速度尽可能快并且尽可能节省电池,以便操作系统选择定期运行它。

据我了解,如果 Siesta 的内存缓存中没有数据(如果应用程序是新启动的),那么它会同时发出网络请求和持久缓存请求。在这种情况下,我经常在持久缓存中拥有非常好的非陈旧数据。我可以让 Siesta 在发出网络请求之前将该数据预加载到内存缓存中吗?然后我的代码使用更少的电池,它会定期运行,一切都很棒!