Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
Solicitar descompresión de contenido en ASP.Net Core

A veces necesito publicar cargas útiles de solicitudes JSON más grandes en mis controladores ASP.Net Core. El tamaño de la carga útil justifica (al menos en mi opinión) comprimirla. Debido a que los controladores ASP.Net Core no parecen admitir contenido de solicitud comprimido de fábrica, implementé mi propio middleware.

Implementar esto fue tan trivial que no estoy seguro de si me estoy perdiendo algo aquí. ¿O porque hay una forma integrada de lograr esto o porque cometí un error importante desde el punto de vista de la seguridad o el rendimiento?

 public class GzipRequestContentEncodingMiddleware { public GzipRequestContentEncodingMiddleware(RequestDelegate next) { if (next == null) throw new ArgumentNullException(nameof(next)); this.next = next; } private readonly RequestDelegate next; private const string ContentEncodingHeader = "Content-Encoding"; private const string ContentEncodingGzip = "gzip"; private const string ContentEncodingDeflate = "deflate"; public async Task Invoke(HttpContext context) { if (context.Request.Headers.Keys.Contains(ContentEncodingHeader) && (context.Request.Headers[ContentEncodingHeader] == ContentEncodingGzip || context.Request.Headers[ContentEncodingHeader] == ContentEncodingDeflate)) { var contentEncoding = context.Request.Headers[ContentEncodingHeader]; context.Request.Headers.Remove(ContentEncodingHeader); var destination = new MemoryStream(); using (var decompressor = contentEncoding == ContentEncodingGzip ? (Stream) new GZipStream(context.Request.Body, CompressionMode.Decompress, true) : (Stream) new DeflateStream(context.Request.Body, CompressionMode.Decompress, true)) { await decompressor.CopyToAsync(destination); } destination.Seek(0, SeekOrigin.Begin); context.Request.Body = destination; context.Request.Headers["Content-Length"] = destination.Length.ToString(CultureInfo.InvariantCulture); } await next(context); } }
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Sé que esta es una publicación bastante antigua, pero en caso de que ayude a alguien, aquí hay un paquete nuget para realizar la descompresión de solicitud en .net core

https://github.com/alexanderkozlenko/aspnetcore-request-descompresión

about 4 years ago · Santiago Trujillo Relatório

0

El middleware y los servicios de Response Compression se proporcionan OOB en ASPNETCORE.

Puede usar el paquete nuget Microsoft.AspNetCore.ResponseCompression siguiendo las instrucciones en los documentos oficiales de ASPNETCORE .

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda