Պահպանեք երկուական ֆայլի բայթերը վստահված անցուղու միջով վերբեռնելիս
Պահպանեք ֆայլի բայթերը և բայթերով երկարությունները վստահված անցուղու միջով վերբեռնելիս՝ փոխարենը արտեֆակտը որպես տեքստ ապակոդավորելու և ASCII-ով վերակառուցելու։
Երկուական ֆայլը պետք է HTTP հաճախորդին հասնի որպես բայթեր։ Տեքստային ընթերցիչով կարդալը և ստացված տողը ASCII-ով վերակոդավորելը կարող է փոխարինել արժեքները նախքան վստահված անցուղին որևէ բան կստանա։ Փոքր տեքստային նմուշի աշխատելը այդ ուղին անվտանգ չի դարձնում պատկերի, արխիվի կամ փաստաթղթի համար։
Գոյություն ունեցող .NET վերբեռնման ուղու մեջ փոխարինեք այդ փոխարկումը երկուական մարմնի աղբյուրով՝
using var file = File.OpenRead(path);
using var content = new StreamContent(file);Անցկացրեք բովանդակությունը հավելվածի կարգավորված HTTP վերբեռնման միջով․ հատվածը սահմանում է մարմնի աղբյուրը, մինչ գոյություն ունեցող հաճախորդը դեռ տնօրինում է մեթոդը, նպատակակետը, վստահված անցուղին և կյանքի տևողության կառավարումը։
Հեռացրեք հին տողի նշանների քանակից հաշվարկված ցանկացած Content-Length։ Այդ դաշտը չափում է օկտետներ։ Թույլ տվեք HTTP գրադարանին կառուցել շրջանակավորումը մարմնի ներկայացումից՝ նշանների քանակը այլ կոդավորմամբ բուֆերի հետ զուգակցելու փոխարեն։
Դիտավորյալ տեքստային վերբեռնման համար բացահայտ ընտրեք կոդավորումը և պահանջվող երկարությունը ստացեք ուղարկված բայթերից։ Տեքստի ձևաչափի այս որոշումը չպետք է կիրառվի կամայական ֆայլերի վրա։
Համեմատեք փոխանցված արտեֆակտը վստահելի սպասվող արժեքի հետ։ HTTP հաջողությունը հաստատում է, որ վերբեռնման գործողությունն ավարտվել է այդ շերտում․ այն չի կարող ցույց տալ, որ նախորդ տեքստային փոխարկումը պահպանել է սկզբնական բայթերը։