Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should a custom NSURLProtocol follow redirects itself, or let its client worry about that?

The NSURLProtocolClient protocol includes a method, -URLProtocol:wasRedirectedToRequest:redirectResponse:, which instances of NSURLProtocol subclasses are supposed to use to tell an URL protocol client that the request was redirected. However, I'm not sure whether the URL Protocol is then supposed to attempt to retrieve the resource from the redirected URL or let the client issue a new request for that resource.

Can anyone tell me what the original URL protocol object is supposed to do in the case of a redirect?

like image 300
Caleb Avatar asked Apr 18 '12 17:04

Caleb


1 Answers

To answer this question, I simply removed the code in my URL protocol implementation that follows the link given in the redirect response. It should be pretty obvious if the connection client follows creates a new connection to load the new URL. As it turns out, nothing happened -- the client never creates a new connection, and the redirect isn't followed. From this I have to conclude that the URL protocol itself should attempt to load URL given in the redirect response.

like image 145
Caleb Avatar answered Oct 04 '22 05:10

Caleb