如何使用POST调用API的结果来执行另一个POST调用

时间:2015-08-12 12:55:21

标签: ios swift

在我正在处理的项目中,我正在调用带有POST请求的https API,它将结果作为JSON提供给我。我正在与AlamoFire进行调用,并使用SwiftJSON进行解析。

所有都按照计划进行,并且收到JSON并且可以解析。但是现在我想使用收到的JSON中的值,并立即用不同的路径再次调用相同的API,并将这些值用作调用中的参数。

目前我正在发布NSNotification,当收到NSNotification时,我会对其他路径进行POST调用,以获取数据的详细信息。这有效,但不是很一致。

我认为有时数据的序列错误,参数可能不正确。大约80%的时间按预期工作。

这是工作的方式吗?或者使用NSNotification这样做是不正确的?对此有任何见解可能会有所帮助!

1 个答案:

答案 0 :(得分:2)

如果您正确使用此通知模式,它应该100%的时间工作,而不是80%的时间。或者,更准确地说,如果网络连接或服务器响应由于您无法控制的原因而失败,您应该优雅地处理它。如果您需要有关此问题的帮助,请使用MCVE更新您的问题,我们会看看我们是否可以为您提供帮助。

就处理整个流程的更有效方式而言,典型的模式是从第一个请求的response闭包内启动第二个请求。

Alamofire.request(.POST, url1, parameters: parameters1).response { request, response, data, error in

    // create url2 and/or parameters2

    Alamofire.request(.POST, url2, parameters: parameters2).response { request, response, data, error in
        // do something with second request
    }
}

如果两个进程之间没有可靠的关系,通常只会使用通知模式(例如,当第一个请求被启动时,它没有合理的方式可能知道哪个(如果有的话)次要请求将需要响应第一个请求做出反应。