簡體   English   中英

A /同步NSURLConnection:在沒有下載數據的情況下獲得響應?

[英]A/Synchronous NSURLConnection: get response without download data?

非常感謝您的幫助。 我被困在這里:

開始在UIWebView中加載URL之前,我需要檢查響應。 但是,同步NSURLConnection將首先下載數據,然后讓我訪問響應,這很糟糕。

異步NSURLConnection可以讓我在接收任何數據之前檢查響應,但是我只能在委托方法connection:didReceiveResponse:中檢查響應。 但是然后我必須告訴我的webView的delegete方法(webView:shouldStartLoadWithRequest:navigationType :)等到響應在那里。 因為兩個委托都在主線程中(它們一定是嗎?我猜是這樣),所以我不能簡單地使用NSCondition來停止webView的委托(因為這意味着要停止主線程)。

有誰知道如何解決這個問題?

提前致謝。

如果只需要標頭,則可以首先發出HEAD請求(而不是GET)。 那只會返回標題,沒有任何正文。 這甚至可能足夠快,以至於您可以考慮同步執行此操作,盡管您顯然希望對其進行徹底的測試。

更新
實際上,請勿同步執行此操作。 即使響應大小很小,僅請求的延遲通常也可能會超過您想要處理的延遲。

使用NSConnection讀取所有數據,然后使用-loadData:MIMEType:textEncodingName:baseURL:將其加載到UIWebView

首先,您實際上不應該對Web數據使用同步方法,因為潛在的延遲很嚴重。

我建議您進行兩次調用:第一次調用MIME類型,這將在確定連接后立即取消連接。 要下載完整數據時的第二個。 由於這可能是加載到UIWebView ,所以這似乎並不合理。

暫無
暫無

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

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