Как вы меняете тип содержимого пользовательского 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"];