بایتهای فایل دودویی را هنگام بارگذاری از طریق پروکسی حفظ کنید
هنگام بارگذاری از طریق پروکسی، بایتهای فایل و طولهای بایتی را حفظ کنید، بهجای اینکه فایل را بهعنوان متن رمزگشایی کنید و با ASCII بازسازی کنید.
یک فایل دودویی باید بهصورت بایت به کارخواه HTTP برسد. خواندن آن با یک خوانندهٔ متن و رمزگذاری دوبارهٔ رشتهٔ حاصل با ASCII میتواند پیش از آنکه پروکسی چیزی دریافت کند مقادیر را جایگزین کند. کار کردن یک نمونهٔ متنی کوچک، آن مسیر را برای یک تصویر، بایگانی یا سند ایمن نمیکند.
در یک مسیر بارگذاری موجود در .NET، آن تبدیل را با یک منبع بدنهٔ دودویی جایگزین کنید:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);محتوا را از بارگذاری HTTP پیکربندیشدهٔ برنامه عبور دهید؛ قطعه منبع بدنه را برپا میکند، در حالی که کارخواه موجود همچنان مالک روش، مقصد، پروکسی و مدیریت طول عمر است.
هر Content-Length را که از شمارش نویسههای رشتهٔ قدیمی محاسبه شده حذف کنید. این فیلد هشتگانهها را میسنجد. بگذارید کتابخانهٔ HTTP قالببندی را از بازنمایی بدنه بسازد، بهجای جفت کردن شمارش نویسه با یک بافر با رمزگذاری متفاوت.
برای بارگذاری متنی عمدی، رمزگذاری را صریحاً انتخاب کنید و هر طول لازم را از بایتهای ارسالی به دست آورید. این تصمیم دربارهٔ قالب متنی نباید به فایلهای دلخواه اعمال شود.
فایل منتقلشده را با یک مقدار مورد انتظار قابل اعتماد مقایسه کنید. موفقیت HTTP تأیید میکند که یک عملیات بارگذاری در آن لایه کامل شده است؛ نمیتواند نشان دهد که یک تبدیل متنی پیشین بایتهای اصلی را حفظ کرده است.