การบัฟเฟอร์การอัปโหลดของ Jersey 2 สำหรับการลองยืนยันตัวตนผ่านพร็อกซีซ้ำ
ทำให้เอนทิตีคำขอของ Jersey 2 ที่ใช้ตัวเชื่อม Apache สามารถทำซ้ำได้เมื่อการเจรจายืนยันตัวตนต้องส่งการอัปโหลดอีกครั้ง
การอัปโหลดที่ลองใหม่หลังการท้าทายจากพร็อกซีต้องใช้เนื้อหาอีกครั้ง สำหรับตัวเชื่อม Apache ของ Jersey 2 ให้เลือกการประมวลผลเอนทิตีแบบบัฟเฟอร์ในการกำหนดค่าที่ใช้สร้างไคลเอนต์นั้น:
ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.property(ClientProperties.PROXY_URI,
"http://proxy.example.net:8080");
config.property(ClientProperties.REQUEST_ENTITY_PROCESSING,
RequestEntityProcessing.BUFFERED);ดำเนินการอัปโหลดผ่านไคลเอนต์ที่ได้ ประเภทเหล่านี้มาจากแพ็กเกจ Jersey client และ Apache-connector การตั้งค่าคอนฟิกที่ไม่ได้ใช้จะไม่ส่งผลต่อคำขอ
ตัวเชื่อมจะห่อเอนทิตีแบบบัฟเฟอร์ไว้ใน BufferedHttpEntity ของ Apache เอนทิตีแบบสตรีมที่ไม่ได้บัฟเฟอร์ไม่สามารถทำซ้ำได้ การบัฟเฟอร์ให้ไบต์แก่ลำดับการยืนยันตัวตนที่ส่งซ้ำได้แทนการอ่านผู้ผลิตที่ใช้ไปแล้วใหม่
สิ่งนี้ไม่รับประกันว่าการยืนยันตัวตนจะสิ้นสุดหลัง 407 เพียงครั้งเดียว บางรูปแบบจำเป็นต้องแลกเปลี่ยนหลายรอบโดยชอบด้วยกฎหมาย ดังนั้นตรวจสอบการเจรจาทั้งหมดก่อนถือว่าการท้าทายอีกรอบเป็นสถานะที่สูญเสีย
รักษาขนาดเนื้อหาให้อยู่ในงบหน่วยความจำ การอัปโหลดแบบสตรีมขนาดใหญ่ต้องใช้กลยุทธ์การเล่นซ้ำที่เหมาะกับภาระงานนั้น; การเปิดบัฟเฟอร์สำหรับทุกคำขออาจแลกความล้มเหลวของการเจรจากับหน่วยความจำหมด