382 messaggi dal 26 agosto 2007
Ciao a tutti,
devo fare una action di una API .NET Core 2.1 che deve ricevere in ingresso un oggetto JSON molto grande, che può arrivare anche a diversi MB. Ho visto che il .NET Core ha un middleware per la compressione della risposta di una action ma non ho trovato nulla in merito alla ricezione di una chiamata compressa e relativa decompressione e associazione al model.
C'è un modo per gestire questo tipo di richieste? Oppure devo fare una action che riceve in ingresso un flusso di byte e poi gestirmi io la decompressione?
In quest'ultimo caso, c'è un modo per fare la stessa action ma con due comportamenti diversi? Cioè se nella richiesta trovo il Content-Encoding gzip la richiesta viene gestita dalla action che gestisce la decompressione, altrimenti la richiesta viene gestita dalla action senza compressione con il model già associato automaticamente.

Lunga vita e prosperità!!
11.064 messaggi dal 09 febbraio 2002
Contributi
Ciao,
la decompressione di una richiesta compressa va svolta con un middleware che poni all'inizio della pipeline, dopodiché la richiesta proseguirà come al solito e verrà elaborata normalmente dagli altri middleware come se non fosse mai stata compressa).

Prova questo, nel readme trovi le istruzioni per installarlo.
https://github.com/msmolka/ZNetCS.AspNetCore.Compression

Importante: metti app.UseCompression(); come prima riga del metodo Configure della classe Startup. In questo modo configurerei il middleware come primo nella pipeline. Andrà ad osservare la richiesta e, se risulta che il contenuto è stato compresso, lo decomprimerà.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.