如何更改自定义NSURLProtocol的内容类型?

时间:2011-02-07 19:27:59

标签: iphone cocoa-touch uiwebview nsurlprotocol

我已经编写了一个NSURLProtocol的自定义子类,但是每当我使用该协议在UIWebView中加载请求时,它假设数据是内容类型“text / html”。有没有办法指定此内容实际上是其他内容(例如“text / plain”或“image / png”)?

2 个答案:

答案 0 :(得分:2)

内容类型实际上由NSURLResponse承载,您可以使用NSURLProtocolClient方法修改URLProtocol:didReceiveResponse:cacheStoragePolicy:例如,设置为text / plain

NSURLResponse *textResponse = [[NSURLResponse alloc] initWithURL:self.request.URL MIMEType:@"text/plain" expectedContentLength:100 textEncodingName:@"UTF-8"];
[self.client URLProtocol:self didReceiveResponse:textResponse cacheStoragePolicy:NSURLCacheStorageAllowedInMemoryOnly];

答案 1 :(得分:0)

内容类型由NSMutableURLRequest承载。

[request setValue:@"image/png" forHTTPHeaderField:@"content-type"];