我的iOS應用使用NSURLSessionConfiguration,NSURLSession,NSURLSessionDownloadTask等下載我們的服務器從數據庫中即時產生的xml文件。一切工作正常與下載,直到我嘗試從一個特定的帳戶下載更大的文件。我們的服務器在爲此帳戶提供xml之前必須做很多工作。換句話說,在服務器實際吐出所請求的xml之前,會有一些重大的等待。對於這個最大的帳戶,即使服務器成功處理數據並將其發送到客戶端,iOS客戶端也不會收到數據。爲什麼我的NSURLSessionDownloadTask下載無法到達我的客戶端?
測試時,我們發現了一些奇特:
- 我們不能下載相同的XML任何Safari瀏覽器(臺式機或iOS)
- 我們可以下載使用Chrome的XML在桌面上
- 我們可以使用命令行
- 在我們的iOS應用上的捲曲下載XML,它不能下載的設備上或在模擬器中XML
我啓動了timeoutIntervalForRequest和timeoutIntervalForResource。它本身不是「超時」的。但是肯定的是,在Apple的網絡堆棧中似乎不允許服務器長時間等待XML生成。爲什麼Chrome和curl沒有問題,但Safari和我的iOS代碼呢?所以,我對這裏發生的事情感到有些不知所措。
這是傳統的服務器代碼,將來會更改爲JSON和更快的類,所以我不需要任何「更改服務器代碼」的答案。
對我而言有什麼想法?提前致謝。
我也試過AFNetworking和捲曲,他們都在項目中失敗。但是我可以在終端上運行相同的捲曲並且它可以工作。 – Erick