Un fișier binar ar trebui să ajungă la clientul HTTP ca octeți. Citirea lui cu un cititor de text și recodificarea șirului rezultat ca ASCII poate înlocui valori înainte ca proxy-ul să primească ceva. Faptul că o mică mostră de text funcționează nu face acea cale sigură pentru o imagine, o arhivă sau un document.

Într-o cale de încărcare .NET existentă, înlocuiți acea conversie cu o sursă de corp binară:

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

Treceți conținutul prin încărcarea HTTP configurată a aplicației; fragmentul stabilește sursa corpului, în timp ce clientul existent deține în continuare metoda, destinația, proxy-ul și gestionarea duratei de viață.

Eliminați orice Content-Length calculat din numărul de caractere al șirului vechi. Acest câmp măsoară octeți. Lăsați biblioteca HTTP să construiască încadrarea din reprezentarea corpului în loc să asocieze un număr de caractere cu un buffer codificat diferit.

Pentru o încărcare de text intenționată, alegeți explicit codificarea și deduceți lungimea necesară din octeții trimiși. Acea decizie privind formatul text nu ar trebui aplicată fișierelor arbitrare.

Comparați artefactul transferat cu o valoare așteptată de încredere. Succesul HTTP confirmă că o operațiune de încărcare s-a încheiat la acel nivel; nu poate arăta că o conversie anterioară de text a păstrat octeții originali.

Articole similare