iOS Alamofire-流式JSON行第一响应问题



使用Alamofire 4.9.0。

我正在尝试实现以JSON行格式处理流式API。方法如下:

stream = Alamofire.request(url, method: HTTPMethod.get,
headers: TTSessionManager.headers)
.validate()
.stream(closure: { (data) in
// parsing JSON lines ...
})
.response(completionHandler: { (response) in
// error handling ...
})

现在的问题是,第一个响应需要一些时间才能返回。当它完成时,我会在一个大批量中获得几行JSON。之后,流继续正常响应,每个通过流的响应都有一个新的JSON行。

有人遇到过这种行为吗?我想知道是否需要一些额外的会话或请求设置,以便从一开始就正常工作(每个响应一行(。在取消请求后检查response.metrics时,很多字段都是空的,所以我不能确定一些初始连接步骤是否是问题所在:

(Domain Lookup Start) (null)
(Domain Lookup End) (null)
(Connect Start) (null)
(Secure Connection Start) (null)
(Secure Connection End) (null)
(Connect End) (null)

所以这里的问题是响应标头没有将Content-Type设置为application/json。当此标头设置不正确时,URLSession数据任务将缓冲响应的前512个字节。

更多信息可以在这里找到:https://developer.apple.com/forums/thread/64875

最新更新