Двоичният файл трябва да достигне до HTTP клиента като байтове. Четенето му с текстов четец и повторното кодиране на получения низ като ASCII може да замени стойности, преди проксито да получи каквото и да е. Успехът на малка текстова извадка не прави този път безопасен за изображение, архив или документ.

В съществуващ път за качване в .NET заменете това преобразуване с двоичен източник на тялото:

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

Предайте съдържанието през конфигурираното HTTP качване на приложението; фрагментът установява източника на тялото, докато съществуващият клиент все още отговаря за метода, дестинацията, проксито и управлението на жизнения цикъл.

Премахнете всеки Content-Length, изчислен от броя символи на стария низ. Полето измерва октети. Оставете HTTP библиотеката да изгради рамкирането от представянето на тялото, вместо да съчетавате брой символи с различно кодиран буфер.

За умишлено текстово качване изберете кодирането изрично и изведете необходимата дължина от изпратените байтове. Това решение за текстов формат не трябва да се прилага към произволни файлове.

Сравнете прехвърления файл с доверена очаквана стойност. Успехът на HTTP потвърждава, че операция по качване е завършила на този слой; той не може да покаже, че предишно текстово преобразуване е запазило оригиналните байтове.

Подобни статии