我注意到,如果存在連接問題,那麼didReceiveResponse:除didFailWithError之外還會被調用:(使用HTTP 400)。NSURLConnection:didReceiveResponse:除didFailWithError外調用:
這不是我所期望的,並且使得處理錯誤情況非常棘手 - 特別是因爲我也注意到didReceiveResponse:在didFailWithError之前被調用:有時在之後。
我不能相信這是有意的行爲,因此我想知道是否有一些問題與我的代碼,但如果有我無法想象如何。
任何人都可以確認NSURLConnection的行爲應該在哪裏,或者他們以前是否看過類似的行爲?
十六是正確的。通常你只需在didReceiveResponse中清空數據緩衝區。 – EricS
如果在didFailWithError之前調用了didReceiveResponse:在上面的這種情況下,有沒有一種方法可以在didReceiveResponse中確定HTTP狀態代碼是什麼,以便那裏的處理可以根據需要進行調整? – Gruntcakes
當然:第二個參數是一個'NSHTTPURLResponse'(假設有一個HTTP請求),它有狀態碼,標題等等。唯一棘手的是你只將它傳遞給你,而不是在完成或失敗方法中,所以你可能需要在某種數據結構中存儲它(或它包含的信息),如果你需要的話它也在那裏。 –