簡體   English   中英

iOS Alamofire - 流式傳輸 JSON 線路第一響應問題

[英]iOS Alamofire - Streaming JSON lines first response issue

使用 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 線。 之后,stream 繼續正常響應,每個響應通過 stream 發出一條新的 JSON 線。

有沒有人遇到過這種行為? 我想知道是否還有一些額外的 session 或請求設置,以便從一開始就正常工作(每個響應行)。 在取消請求后檢查response.metrics時,很多字段都是 null 所以我不能肯定地說一些初始連接步驟是否是問題:

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

所以這里的問題是響應 header 沒有將Content-Type設置為application/json 當此 header 設置不正確時,URLSession 數據任務將緩沖前 512 個字節的響應。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM