ไฟล์ไบนารีควรไปถึงไคลเอนต์ HTTP ในรูปไบต์ การอ่านด้วยตัวอ่านข้อความแล้วเข้ารหัสสตริงที่ได้เป็น ASCII ใหม่สามารถแทนที่ค่าได้ก่อนที่พร็อกซีจะได้รับสิ่งใด ตัวอย่างข้อความเล็ก ๆ ที่ทำงานได้ไม่ได้ทำให้เส้นทางนั้นปลอดภัยสำหรับรูปภาพ ไฟล์บีบอัด หรือเอกสาร

ในเส้นทางการอัปโหลด .NET ที่มีอยู่ ให้แทนที่การแปลงนั้นด้วยแหล่งข้อมูลเนื้อหาแบบไบนารี:

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

ส่งเนื้อหาผ่านการอัปโหลด HTTP ที่แอปพลิเคชันกำหนดไว้ ส่วนนี้จะสร้างแหล่งเนื้อหา ขณะที่ไคลเอนต์เดิมยังคงดูแลเมธอด ปลายทาง พร็อกซี และการจัดการอายุการใช้งาน

ลบ Content-Length ใด ๆ ที่คำนวณจากจำนวนอักขระของสตริงเดิม ฟิลด์นี้วัดเป็นออกเตต ปล่อยให้ไลบรารี HTTP สร้างเฟรมจากตัวแทนเนื้อหา แทนการจับคู่จำนวนอักขระกับบัฟเฟอร์ที่เข้ารหัสต่างกัน

สำหรับการอัปโหลดข้อความโดยเจตนา ให้เลือกการเข้ารหัสอย่างชัดเจนและหาความยาวที่จำเป็นจากไบต์ที่ส่งไป การตัดสินใจเรื่องรูปแบบข้อความนั้นไม่ควรนำไปใช้กับไฟล์ใด ๆ

เปรียบเทียบไฟล์ที่ถ่ายโอนกับค่าที่คาดหวังที่เชื่อถือได้ ความสำเร็จของ HTTP ยืนยันว่าการอัปโหลดเสร็จสิ้นในชั้นนั้น มันไม่สามารถแสดงว่าการแปลงข้อความก่อนหน้ารักษาไบต์ดั้งเดิมไว้

บทความที่เกี่ยวข้อง