0

使用 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)
4

1 回答 1

0

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

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

于 2020-12-17T15:09:31.477 回答