El tipo de contenido de los datos devueltos por la interfaz de solicitud está analizando

Brotli es un nuevo formato de datos que puede proporcionar una relación de compresión 20-26% mayor que Zopfli.

Brotli se lanzó originalmente en 2015 para la compresión sin conexión de fuentes web. Los ingenieros de software de Google lanzaron una versión mejorada de Brotli con compresión general de datos sin pérdidas en septiembre de 2015, con un enfoque particular en la compresión HTTP.

Se ha propuesto que el tipo de codificación de contenido que usa Brotli para la compresión de flujo use "br".

Use httpClient para hacer solicitudes

Dependencias a introducir:

<dependency> 
    <groupId> org.apache.commons </groupId> 
    <artifactId> commons-compress </artifactId> 
    <version> 1.18 </version> 
</dependency> 

<dependency> 
    <groupId> org.brotli </groupId> 
    <artifactId> dec </artifactId> 
    <version> 0.1.2 </version> 
</dependency>

Análisis: al analizar los datos devueltos, se descubre que el tipo de contenido es br. Si la secuencia devuelta se convierte directamente en una cadena, es ilegible. Debe usar BrotliCompressorInputStream para recibirla y luego convertirla a InputStream para analizarla como una cadena.

1  privado  estática Cadena deCodeStream (corriente InputStream, Cadena CodeType) {
 2      si ( codeType.contains ( "br")) {
 3          try {
 4              BrotliCompressorInputStream brStream = nuevo BrotliCompressorInputStream (corriente);
5              BufferedInputStream inputStream = nuevo BufferedInputStream (brStream);
6              ByteArrayOutputStream result = new ByteArrayOutputStream ();
7              bytes [] buffer = nuevo  byte [1024 ];
8              int de longitud;
9              while ((length = inputStream.read (buffer))! = -1 ) {
 10                  result.write (buffer, 0 , length);
11              }
 12              String str = result.toString (StandardCharsets.UTF_8.name ());
13              System.out.println (str);
14              brStream.close ();
15              inputStream.close ();
16              resultado.close ();
17              vuelta str;
18          } catch (IOException e) {
 19              System.out.println (e.getMessage ());
20          }
21      }
 22      retorno "" ;
23 }

 

Supongo que te gusta

Origin www.cnblogs.com/oumae/p/12681760.html
Recomendado
Clasificación