Как вы меняете тип содержимого пользовательского NSURLProtocol?

Я написал собственный подкласс NSURLProtocol, однако кажется, что всякий раз, когда я использую протокол для загрузки запроса в UIWebView, он предполагает, что данные относятся к типу содержимого "text/html". Есть ли способ указать, что этот контент на самом деле является чем-то другим (например, "text/plain" или "image/png")?

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];

Тип содержимого передается NSMutableURLRequest.

[request setValue:@"image/png" forHTTPHeaderField:@"content-type"];
Другие вопросы по тегам