我正在使用NSURLRequest從Java Servlet接收數據。 Servlet正在立即寫入輸出流。NSURLRequest太晚接收數據
NSURLRequest立即收到響應connection:didReceiveResponse:
,但接收數據持續15-20秒。 (所以這是didReceiveResponse
和didReceiveData
之間的時間)。它看起來像NSURLRequest緩衝數據並等待更多數據。
如何防止此問題?
我正在使用NSURLRequest從Java Servlet接收數據。 Servlet正在立即寫入輸出流。NSURLRequest太晚接收數據
NSURLRequest立即收到響應connection:didReceiveResponse:
,但接收數據持續15-20秒。 (所以這是didReceiveResponse
和didReceiveData
之間的時間)。它看起來像NSURLRequest緩衝數據並等待更多數據。
如何防止此問題?
NSURLConnection使用低級緩衝來收集字節。
didReceiveResponse和didRecieveData之間有區別 - 因爲會有一些代理/數據路由可能導致延遲。
爲了執行指標,您應該記錄第一次didRecieveData和connectionDidFinishLoading之間的時間,並比較您在網絡瀏覽器上執行相同操作的時間。
希望這會有所幫助。
好的,我已經在網絡瀏覽器中測試過了。它也有10-15秒的延遲。我想,servlet不會正確關閉流。我也有一個Java實現。我沒有這樣的延遲。 – flux 2011-04-14 10:14:28
好。現在您可以確定,由於NSURLConnectionDelegates中的某些不一致導致延遲,因爲您可以在瀏覽器中複製該行爲。 Servlets以不同的方式工作,所以我不想進入這個領域。嘗試着重於服務器實現並對其進行排序。我相信它會在iOS代碼中正常工作。乾杯。 – 2011-04-16 23:24:56
您是否認爲[didReceiveResponse]和[didReceiveData]代表之間的時間過長? – 2011-04-14 09:47:29
是的,這就是我的意思。 – flux 2011-04-14 09:51:36
這絕對是Java Servlet問題,將要寫入流中的輸出流的預期大小是多少? – 2011-04-14 09:53:58