我正在寻找一种可以链接多个HTTP请求的良好模式。我想使用Swift,最好使用Alamofire。
举例来说,我要执行以下操作:
承诺的概念似乎很适合此目的。如果我可以执行以下操作,则PromiseKit可能是一个不错的选择:
NSURLConnection.promise(
Alamofire.request(
Router.Put(url: "http://httbin.org/put")
)
).then { (request, response, data, error) in
Alamofire.request(
Router.Get(url: "http://httbin.org/get")
)
}.then { (request, response, data, error) in
// Process data
}.then { () -> () in
// Reload table
}
但这是不可能的,或者至少我不知道。
如何在不嵌套多个方法的情况下实现此功能?
我是iOS的新手,所以也许我缺少一些更基本的东西。我在其他框架(例如Android)中所做的就是在后台进程中执行这些操作,并使请求同步。但是Alamofire本质上是异步的,因此该模式不是一种选择。
将其他异步内容包装在promise中的工作方式如下:
func myThingy() -> Promise<AnyObject> {
return Promise{ fulfill, reject in
Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"]).response { (_, _, data, error) in
if error == nil {
fulfill(data)
} else {
reject(error)
}
}
}
}
编辑:如今,使用:https :
//github.com/PromiseKit/Alamofire-
问题内容: 我需要链接来自Google Maps API的一些API请求,而我正在尝试使用Axios来实现。 这是第一个请求,它在componentWillMount()中 这是第二个请求: 然后,我们有第三个请求,这取决于前两个请求是否完成: 如何链接这三个电话,以便第三个电话发生在前两个电话之后? 问题答案: 首先,不确定是否要在其中执行此操作,最好将其插入并具有一些默认状态,这些状态一旦完成
问题内容: 我有一个与第三方供应商VENDOR1的库X版本libfoo静态链接的应用程序。它还与来自第三方供应商VENDOR2的动态(共享)库libbar链接,该库静态链接了VENDOR1的libfoo版本Y。 因此libbar.so包含libfoo.a的Y版本,而我的可执行文件包含libfoo.x的X版本。libbar仅在内部使用libfoo,并且没有从我的应用程序传递到libbar的libfo
问题内容: 所以我刚才正在使用jQuery的.load(),看来我们无法配置`$(“#example”).load(‘./uri.ext `$(“#example”).load(‘./uri.ext #ID1’).load(‘./uri.ext #ID2’).load(‘./uri.ext ID3’)` 如果我们具有DIV的模板文件或用于动态构建页面的文件,而不将HTML存储在字符串变量中或沿这些
问题内容: 我使用Python Requests库下载一个大文件,例如: 大文件的下载速度为每秒+-30 Kb,这有点慢。与bigfile服务器的每个连接都受到限制,因此我想建立多个连接。 有没有一种方法可以同时建立多个连接来下载一个文件? 问题答案: 您可以使用HTTP标头仅获取文件的一部分(此处已涵盖python)。 只需启动几个线程,并获取每个线程的不同范围,就可以完成;) 还要注意,并非每
我正在为一个Rails应用程序进行搜索引擎优化。 该网站是完全本地化的,我下面的这篇谷歌文章,以添加hirang备用链接到网页。
我在Alamofire 5.3中收到了大量失败的请求,其中响应对象本身为nil,或者错误为“无法解析响应”。我可以从服务器日志中看到,所有这些请求都返回有效。 这是我的设置: API管理器类: AccessTokenInterceptor: 这个拦截器从插入我的授权令牌 我也使用标准路由器的URL刚需转换,编码是通过JSON序列化(字典)或可编码协议(对象) 奇怪的是,我不认为我在做任何不同于我使