在iPhone上处理eTags

Abh*_*nav 5 iphone etag cocoa-touch uiview

知道如何在客户端处理eTags吗?我们计划在我们的应用程序中使用带有来自服务器的图像的eTags.

有关什么是eTag,请参阅:http: //en.wikipedia.org/wiki/HTTP_ETag

zrz*_*zka 7

你学习的起点......

NSMutableURLRequest

您可以在此处为您的请求设置eTag值.

[self addValue:eTag forHTTPHeaderField:@"If-None-Match"];
Run Code Online (Sandbox Code Playgroud)

此请求可用于NSURLConnection.

NSURLConnectionDelegate

NSURLConnection的代表有方法......

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
Run Code Online (Sandbox Code Playgroud)

...在你的情况下回应NSHTTPURLResponse.

您应该在另一个委托的方法中检查响应statusCode ...

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
Run Code Online (Sandbox Code Playgroud)

...当未修改远程对象时,接收状态码304.如果修改了远程对象并且支持eTag,则可以在其中找到它[response allHeaderFields].

  • 我不同意检查`-connectionDidFinishLoading:`中的状态代码.您可以在响应到达后立即检查它,以便在代码意外的情况下立即取消或以其他方式处理连接 (2认同)