Muat naik yang dicuba semula selepas cabaran proksi memerlukan badannya sekali lagi. Untuk penyambung Apache Jersey 2, pilih pemprosesan entiti terbuffer pada konfigurasi yang digunakan untuk membina klien itu:

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 muat naik melalui klien yang terhasil. Jenis-jenis ini datang daripada pakej Jersey client dan Apache-connector; menetapkan konfigurasi yang tidak digunakan tidak akan menjejaskan permintaan.

Penyambung membalut entiti terbuffer dalam BufferedHttpEntity Apache. Entiti penstriman yang tidak terbuffer tidak boleh diulang. Pembufferan memberi aliran pengesahan bait yang boleh dihantar semula dan bukannya membaca semula penghasil yang telah digunakan.

Ia tidak menjamin pengesahan tamat selepas satu 407. Sesetengah skema memang memerlukan beberapa pertukaran, jadi periksa seluruh rundingan sebelum menganggap cabaran lain sebagai keadaan yang hilang.

Kekalkan saiz badan dalam bajet memori. Muat naik penstriman yang besar memerlukan strategi main semula yang sesuai dengan beban kerja itu; mendayakan pembufferan untuk setiap permintaan boleh menukar kegagalan rundingan dengan kehabisan memori.

Artikel berkaitan