Binarna datoteka trebala bi stići do HTTP klijenta kao bajtovi. Čitanje tekstualnim čitačem i ponovno kodiranje dobivenog niza u ASCII može zamijeniti vrijednosti prije nego proxy išta primi. To što mali tekstualni uzorak radi ne čini taj put sigurnim za sliku, arhivu ili dokument.

U postojećem .NET putu prijenosa zamijenite tu pretvorbu binarnim izvorom tijela:

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

Proslijedite sadržaj kroz konfigurirani HTTP prijenos aplikacije; ulomak uspostavlja izvor tijela, dok postojeći klijent i dalje upravlja metodom, odredištem, proxyjem i trajanjem.

Uklonite svaki Content-Length izračunat iz broja znakova starog niza. To polje mjeri oktete. Pustite HTTP biblioteku da izgradi okvir iz prikaza tijela umjesto da uparuje broj znakova s drukčije kodiranim međuspremnikom.

Za namjeran tekstualni prijenos eksplicitno odaberite kodiranje i izvedite potrebnu duljinu iz poslanih bajtova. Ta odluka o tekstualnom formatu ne bi se trebala primjenjivati na proizvoljne datoteke.

Usporedite preneseni artefakt s pouzdanom očekivanom vrijednošću. HTTP uspjeh potvrđuje da je operacija prijenosa dovršena na tom sloju; ne može pokazati da je prethodna tekstualna pretvorba sačuvala izvorne bajtove.

Povezani članci