【问题标题】:iOS Alamofire - Streaming JSON lines first response issueiOS Alamofire - 流式 JSON 行第一个响应问题
【发布时间】:2020-12-09 12:14:56
【问题描述】:

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

【问题讨论】:

    标签: ios alamofire alamofire-request


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多