Plik binarny powinien dotrzeć do klienta HTTP jako bajty. Odczyt za pomocą czytnika tekstu i ponowne zakodowanie wynikowego ciągu jako ASCII może zastąpić wartości, zanim proxy cokolwiek otrzyma. Działanie małej próbki tekstu nie czyni tej ścieżki bezpieczną dla obrazu, archiwum czy dokumentu.

W istniejącej ścieżce wysyłania .NET zastąp tę konwersję binarnym źródłem treści:

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

Przepuść treść przez skonfigurowane w aplikacji wysyłanie HTTP; fragment ustanawia źródło treści, a istniejący klient nadal odpowiada za metodę, miejsce docelowe, proxy i zarządzanie czasem życia.

Usuń każdy Content-Length obliczony z liczby znaków starego ciągu. To pole mierzy oktety. Pozwól bibliotece HTTP zbudować ramowanie z reprezentacji treści zamiast łączyć liczbę znaków z buforem zakodowanym inaczej.

W przypadku zamierzonego wysyłania tekstu wybierz kodowanie jawnie i wyprowadź wymaganą długość z wysyłanych bajtów. Ta decyzja o formacie tekstowym nie powinna być stosowana do dowolnych plików.

Porównaj przesłany artefakt z zaufaną oczekiwaną wartością. Sukces HTTP potwierdza, że operacja wysyłania zakończyła się na tej warstwie; nie może wykazać, że wcześniejsza konwersja tekstu zachowała oryginalne bajty.

Powiązane artykuły