Зачувајте ги бајтите на бинарната датотека при поставување преку прокси
Зачувајте ги бајтите и должините во бајти на датотеката при поставување преку прокси, наместо да го декодирате артефактот како текст и да го преизградите со ASCII.
Бинарната датотека треба да стигне до HTTP клиентот како бајти. Читањето со текстуален читач и повторното кодирање на добиениот стринг во ASCII може да ги замени вредностите пред проксито воопшто да прими нешто. Тоа што работи мал текстуален примерок не го прави тој пат безбеден за слика, архив или документ.
Во постоечкиот .NET пат за поставување, заменете ја таа конверзија со бинарен извор на тело:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);
Предајте ја содржината преку HTTP поставувањето конфигурирано во апликацијата; фрагментот го воспоставува изворот на телото, додека постоечкиот клиент сè уште го поседува методот, дестинацијата, проксито и управувањето со животниот век.
Отстранете го секој Content-Length пресметан од бројот на знаци на стариот стринг. Полето мери октети. Дозволете HTTP библиотеката да изгради рамка од претставата на телото наместо да спарува број на знаци со поинаку кодиран бафер.
За намерно текстуално поставување, изберете го кодирањето експлицитно и изведете ја потребната должина од испратените бајти. Таа одлука за текстуален формат не треба да се применува на произволни датотеки.
Споредете го пренесениот артефакт со доверлива очекувана вредност. HTTP успехот потврдува дека операцијата за поставување завршила на тој слој; не може да покаже дека претходната текстуална конверзија ги зачувала оригиналните бајти.