Binárny súbor by sa mal do HTTP klienta dostať ako bajty. Čítanie textovým čítačom a opätovné zakódovanie výsledného reťazca ako ASCII môže nahradiť hodnoty ešte predtým, než proxy čokoľvek prijme. To, že malá textová ukážka funguje, nerobí túto cestu bezpečnou pre obrázok, archív alebo dokument.

V existujúcej ceste nahrávania .NET nahraďte túto konverziu binárnym zdrojom tela:

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

Prežeňte obsah cez nakonfigurované HTTP nahrávanie aplikácie; fragment ustanoví zdroj tela, zatiaľ čo existujúci klient stále vlastní metódu, cieľ, proxy a správu životnosti.

Odstráňte akýkoľvek Content-Length vypočítaný z počtu znakov starého reťazca. Toto pole meria oktety. Nechajte HTTP knižnicu zostaviť rámcovanie z reprezentácie tela namiesto spájania počtu znakov s inak zakódovaným bufferom.

Pri zámernom textovom nahrávaní vyberte kódovanie explicitne a požadovanú dĺžku odvodite z odoslaných bajtov. Toto rozhodnutie o textovom formáte by sa nemalo uplatňovať na ľubovoľné súbory.

Porovnajte prenesený artefakt s dôveryhodnou očakávanou hodnotou. Úspech HTTP potvrdzuje, že operácia nahrávania sa na tejto vrstve dokončila; nemôže ukázať, že predchádzajúca textová konverzia zachovala pôvodné bajty.

Súvisiace články