Мне не хватает чего-то в довольно простой задаче: мне нужно проверить, включен ли входной поток входящего запроса и развязать его содержимое. это без использования содержимого. я думал о чем-то вроде этого:чтение gzipped запроса в сервлете
проверки, если запрос архивированная:
private boolean isGZIPed(HttpServletRequest request)
{
boolean isGziped = false;
try
{
PushbackInputStream pb = new PushbackInputStream(request.getInputStream(), 2);
byte[] signature = new byte[2];
pb.read(signature);
pb.unread(signature);
int head = ((int)signature[0] & 0xff) | ((signature[1] << 8) & 0xff00);
isGziped = GZIPInputStream.GZIP_MAGIC == head;
}
catch(Exception ioe)
{
logger.error(ioe);
}
return isGziped;
}
ungzip его, если оно действительно являющегося файлом:
if(isGziped(request)
{
GZIPInputStream gzis = new GZIPInputStream(request.getInputStream());
InputStreamReader reader = new InputStreamReader(gzis);
...
}
моя проблема заключается в том, что новый GZIPInputStream (request.getInputStream()) всегда выдает исключение «не формат gzip». что я пропустил?