我对具有If-modified-since HTTP标头的某个图像有HEAD请求,以检查图像是否实际被修改。如果修改,那么我只是发送此图像的GET请求。 它曾经适用于iOS 7,现在适用于iOS 7.但对于iOS 8,我得到了
Error Domain=AFNetworkingErrorDomain Code=-1016 "Request failed: unacceptable content-type: image/png"
所以相同的代码适用于ios7和ios8-不适用。有什么想法吗?
答案 0 :(得分:1)
首先,您无需提出HEAD
请求。适当的NSURLRequestCachePolicy
可以完成同样的事情。
其次,错误是由响应序列化程序的响应发送的不可接受的内容类型引起的。对于image/png
,请使用AFImageResponseSerializer
,或为您选择的响应序列化程序设置相应的acceptableContentTypes
属性。
答案 1 :(得分:0)
感谢Matt展示道路。我删除了HEAD请求。现在我使用AFHTTPRequestOperation和AFImageResponseSerializer。我还使用setValue:forHTTPHeaderField方法在NSMutableURLRequest中设置'If-Modified-Since'标头。此日期存储在userdefaults中,其中key是URL,value是修改此URL的日期。
我确信应该有更好的方法,例如使用NSURLCache,但我无法做到。