קובץ בינארי צריך להגיע ללקוח ה-HTTP כבייטים. קריאתו בקורא טקסט וקידוד מחדש של המחרוזת המתקבלת כ-ASCII עלולים להחליף ערכים לפני שהפרוקסי מקבל משהו. העובדה שדגימת טקסט קטנה עובדת אינה הופכת את הנתיב הזה לבטוח עבור תמונה, ארכיון או מסמך.

בנתיב העלאה קיים ב-.NET, החליפו את ההמרה הזו במקור גוף בינארי:

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

העבירו את התוכן דרך העלאת ה-HTTP המוגדרת של היישום; הקטע קובע את מקור הגוף, בעוד שהלקוח הקיים עדיין אחראי על השיטה, היעד, הפרוקסי וטיפול במשך החיים.

הסירו כל Content-Length שחושב ממספר התווים של המחרוזת הישנה. השדה מודד אוקטטים. תנו לספריית ה-HTTP לבנות את המסגור מתוך ייצוג הגוף במקום לצמד מספר תווים לחוצץ בקידוד שונה.

להעלאת טקסט מכוונת, בחרו את הקידוד במפורש וגזרו כל אורך נדרש מהבייטים שנשלחים. אין ליישם את החלטת פורמט הטקסט הזו על קבצים שרירותיים.

השוו את הארטיפקט שהועבר לערך צפוי מהימן. הצלחת HTTP מאשרת שפעולת העלאה הושלמה בשכבה הזו; היא אינה יכולה להראות שהמרת טקסט קודמת שמרה על הבייטים המקוריים.

מאמרים קשורים