2012-06-01 2 views
3

У меня есть метод, который создал NSURLRequest. Если я загружу этот NSURLRequest в UIWebView, есть некоторые перенаправления, которые я улавливаю с помощью - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType.Как перехватить перенаправление из NSURLRequest без UIWebview

Как перехватить эти перенаправления без загрузки моего запроса в UIWebView? (Я не хочу этого вообще)

ответ

3

Ну, вы должны сказать нам, как вы загружаете его для начала. Вы используете NSURLConnection? Затем используйте метод делегата -connection:willSendRequest:redirectResponse:. Обязательно прочитайте документы, чтобы понять, когда они будут вызваны. Его часто называют только потому, что структура изменила ваш запрос до фактического общения с чем-либо, поэтому не каждый вызов является перенаправлением.

+0

Я хочу избежать NSURLConnection от обработки любых переадресаций и хочу прочитать ответ, когда код состояния 302 я пробовал много вещей, включая возврат nil/same request из 'connection: willSendRequest: redirectResponse', но без использования в java apache client он работает с настройкой «http.protocol.handle-redirects» на false см. ссылку java doc thats, что я хочу сделать в ios http://hc.apache.org/httpcomponents-client-4.2.x/tutorial/html/httpagent .html # d5e1169 – Yadnesh

1

если я хорошо понимаю, что вы хотите поймать запрос и не загружать его в веб-обозревателе. Если это то, что вы хотите сделать, просто заставьте ваш метод возвращать NO.

  - (BOOL)webView:(UIWebView *)webView 
shouldStartLoadWithRequest:(NSURLRequest *)request 
      navigationType:(UIWebViewNavigationType)navigationType. 
+0

Нет, цель не в использовании UIWebView – Anthony

+0

Итак, вы хотите интерпретировать перенаправление URL без веб-просмотра? Как перенаправление, которое находится в заголовке HTTP-запроса? –

0

Вы можете подклассифицировать NSURLCache, чтобы перехватить любые запросы на URL.

В этом примере: http://cocoawithlove.com/2010/09/substituting-local-data-for-remote.html демонстрирует использование подкласса для загрузки локальных файлов вместо удаленных файлов, но вы также можете использовать подобный подкласс для отмены запросов или выполнения других необходимых действий.

Смежные вопросы