Ei binærfil skal komme fram til HTTP-klienten som byte. Hvis du leser den med en tekstleser og koder den resulterende strengen som ASCII på nytt, kan verdier bli erstattet før proxyen i det hele tatt mottar noe. At et lite teksteksempel virker, betyr ikke at denne veien er trygg for et bilde, en arkivfil eller et dokument.

I en eksisterende opplastingsvei i .NET erstatter du denne konverteringen med en binær kroppskilde:

using var file = File.OpenRead(path);
using var content = new StreamContent(file);

La innholdet gå gjennom applikasjonens konfigurerte HTTP-opplasting; utdraget etablerer kroppskilden, mens den eksisterende klienten fortsatt håndterer metoden, destinasjonen, proxyen og levetiden.

Fjern alle Content-Length-verdier som er regnet ut fra tegntallet i den gamle strengen. Feltet måler oktetter. La HTTP-biblioteket bygge innrammingen fra kroppsrepresentasjonen i stedet for å kombinere et tegntall med en buffer som er kodet annerledes.

Ved en bevisst tektopplasting bør du velge kodingen eksplisitt og utlede nødvendig lengde fra bytene som sendes. Denne avgjørelsen om tekstformat skal ikke brukes på vilkårlige filer.

Sammenlign fila som ble overført, med en pålitelig forventet verdi. En vellykket HTTP-respons bekrefter at opplastingen fullførte på dette laget; den kan ikke vise at en tidligere tekstkonvertering bevarte de opprinnelige bytene.

Relaterte artikler