Unggahan yang dicoba ulang setelah tantangan proxy membutuhkan isinya lagi. Untuk konektor Apache milik Jersey 2, pilih pemrosesan entitas yang dibuffer pada konfigurasi yang dipakai membangun klien tersebut:

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);

Lakukan unggahan melalui klien yang dihasilkan. Tipe-tipe ini berasal dari paket Jersey client dan Apache-connector; mengatur konfigurasi yang tidak dipakai tidak akan memengaruhi permintaan.

Konektor membungkus entitas yang dibuffer dalam BufferedHttpEntity milik Apache. Entitas streaming tanpa buffer-nya tidak dapat diulang. Pembufferan memberi alur autentikasi byte yang dapat dikirim ulang alih-alih membaca ulang produser yang sudah terpakai.

Ini tidak menjamin autentikasi berakhir setelah satu 407. Beberapa skema memang menuntut beberapa pertukaran, jadi periksa seluruh negosiasi sebelum menganggap tantangan lain sebagai keadaan yang hilang.

Jaga ukuran isi dalam anggaran memori. Unggahan streaming besar memerlukan strategi pemutaran ulang yang sesuai dengan beban itu; mengaktifkan pembufferan untuk setiap permintaan dapat menukar kegagalan negosiasi dengan habisnya memori.

Artikel terkait