Almacenar en búfer unha carga de Jersey 2 para reintentos de autenticación do proxy
Faga repetible a entidade de solicitude de Jersey 2 con conector Apache cando a negociación de autenticación deba reenviar a carga.
Unha carga reintentada tras un desafío do proxy volve necesitar o seu corpo. Para o conector Apache de Jersey 2, seleccione o procesamento de entidade almacenada en búfer na configuración coa que se constrúe ese cliente:
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);Realice a carga co cliente resultante. Estes tipos proveñen dos paquetes Jersey client e Apache-connector; establecer unha configuración non utilizada non afectaría a solicitude.
O conector envolve unha entidade almacenada en búfer en BufferedHttpEntity de Apache. A súa entidade de streaming sen búfer non é repetible. O almacenamento en búfer dálle ao fluxo de autenticación bytes que pode reenviar no canto de reler un produtor xa consumido.
Non garante que a autenticación remate tras un 407. Algúns esquemas requiren lexitimamente varias intercambios, así que revise toda a negociación antes de tratar outro desafío como estado perdido.
Manteña o tamaño do corpo dentro do orzamento de memoria. Unha carga de streaming grande necesita unha estratexia de repetición axeitada a esa carga de traballo; activar o búfer para cada solicitude pode cambiar un fallo de negociación por esgotamento de memoria.