Apache HttpClient 4.2: Proxy AuthCache'i istek bağlamında tutun
HttpClient 4.2 proxy Basic-auth önbelleğini sonraki isteklerin kullandığı aynı yürütme bağlamında tutun.
Eski bir HttpClient 4.2.2 uygulamasında kimlik bilgisi sağlayıcısı ve kimlik doğrulama önbelleği farklı işler yapar. Sağlayıcı hesabı sağlar; önbellek, kasıtlı olarak önceden yapılandırılmış bir kimlik doğrulama şemasının bir sonraki meydan okuma gelmeden önce katılmasına izin verir.
Proxy'ye özgü eski BasicScheme kurucusu için devir şöyle görünür:
AuthCache cache = new BasicAuthCache();
cache.put(proxy, new BasicScheme(ChallengeState.PROXY));
HttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.AUTH_CACHE, cache);
HttpResponse response = client.execute(request, context);Bu parça, client'ın eşleşen proxy rotasına ve kimlik bilgisi sağlayıcısına zaten sahip olduğunu varsayar. proxy onun HttpHost'u, request ise gerçek işlemdir. Önbellek anahtarı bu aracıyı tanımlamalıdır, hedef web sitesini değil.
Doldurulmuş bağlamı execute'a geçirin. Onu kurup sonra başka bir bağlam oluşturan bir aşırı yükleme kullanmak önbelleği değiş tokuşun dışında bırakır. Bu kimlik doğrulama durumunu paylaşması gereken sonraki işlemler için her seferinde boş bir bağlam yeniden kurmak yerine uygun bağlamı koruyun.
Açık PROXY durumu bu daha eski API'ye aittir. TARGET hedefin kimlik doğrulamasıyla ilgilidir. Yeni HttpClient nesilleri paketleri ve kimlik doğrulama API'lerini değiştirdi; bu nedenle bunu yeni bir client için tarif değil, mevcut 4.2 kodu için bakım kılavuzu olarak kullanın.
Normal, meydan okuma güdümlü bir değiş tokuş hâlâ doğru olabilir. Basic kimlik doğrulamayı yalnızca bilinen ve amaçlanan bir proxy için önceden ayarlayın ve sonraki işlem bağlantısına ihtiyaç duymadan önce her yanıtı tüketin veya serbest bırakın. Yararlı sonuç, isteği gerçekten gönderen yürütmeye bağlı bir hesap ve önbelleğe alınmış şemadır.