สำหรับพร็อกซี HTTP ที่ให้การพิสูจน์ตัวตนแบบ Basic นั้น proxyAuthenticator ของ OkHttp สามารถคืนคำขอที่พาข้อมูลรับรองได้ คืน null หลังจากความพยายามอนุญาตถูกปฏิเสธไปแล้ว แทนที่จะส่งคำตอบเดิมซ้ำอีกครั้ง:

.proxyAuthenticator { _, response ->
    if (response.request.header("Proxy-Authorization") != null) {
        null
    } else {
        response.request.newBuilder()
            .header("Proxy-Authorization",
                    Credentials.basic(proxyUser, proxyPassword))
            .build()
    }
}

แบบร่างนี้ใช้ค่าบัญชีจากการกำหนดค่าลับของแอปพลิเคชัน ตัวป้องกันอนุญาตให้ลองครั้งแรกและหยุดการลองซ้ำ มันใช้งาน Basic ไม่ใช่ทุกสคีมที่พร็อกซีอาจประกาศ ตรวจสอบการท้าทายก่อนเลือกคำตอบนั้น

หากผลลัพธ์สุดท้ายยังคงเป็น 407 ให้เปรียบเทียบพร็อกซีที่เลือก สคีมที่ประกาศ และตัวตนบัญชีที่มีเอกสาร รหัสผ่านที่ถูกปฏิเสธ วิธีที่ไม่รองรับ และรูปแบบชื่อผู้ใช้ที่ไม่ถูกต้องต้องใช้การแก้ไขที่ต่างกัน เก็บข้อสังเกตเหล่านั้นและสถานะสุดท้ายไว้ในการวินิจฉัยที่ปิดบัง

CONNECT มีบริบทการเรียกกลับอีกแบบหนึ่ง OkHttp จัดทำเอกสารการท้าทายการพิสูจน์ตัวตนพร็อกซีแบบสังเคราะห์ล่วงหน้าก่อนเปิดอุโมงค์ จัดการบริบทนั้นตาม API แทนที่จะถือว่าทุกการเรียกกลับเป็นการตอบสนองปลายทางปกติ

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

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

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