Tệp nhị phân phải đến máy khách HTTP dưới dạng byte. Đọc nó bằng trình đọc văn bản rồi mã hóa lại chuỗi thu được thành ASCII có thể thay thế giá trị trước khi proxy nhận được bất cứ thứ gì. Một mẫu văn bản nhỏ chạy được không làm cho đường đi đó an toàn cho ảnh, tệp nén hay tài liệu.

Trong đường tải lên .NET hiện có, hãy thay chuyển đổi đó bằng nguồn thân nhị phân:

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

Truyền nội dung qua quá trình tải lên HTTP đã cấu hình của ứng dụng; đoạn này thiết lập nguồn thân, trong khi máy khách hiện có vẫn phụ trách phương thức, đích đến, proxy và quản lý vòng đời.

Xóa mọi Content-Length được tính từ số ký tự của chuỗi cũ. Trường này đo bằng octet. Hãy để thư viện HTTP dựng khung từ biểu diễn thân thay vì ghép số ký tự với một bộ đệm được mã hóa khác đi.

Với một lần tải lên văn bản có chủ đích, hãy chọn mã hóa một cách rõ ràng và lấy độ dài cần thiết từ số byte đã gửi. Quyết định về định dạng văn bản đó không nên áp dụng cho các tệp tùy ý.

So sánh tệp đã truyền với một giá trị mong đợi đáng tin cậy. Thành công của HTTP xác nhận rằng thao tác tải lên đã hoàn tất ở lớp đó; nó không thể cho thấy rằng một chuyển đổi văn bản trước đó đã giữ nguyên các byte gốc.

Bài viết liên quan