Unha solicitude GET pode autenticarse a través dun proxy mentres que un POST ou PUT falla cun erro de corpo non repetible ou de rebobinado. A conta pode ser correcta: un intercambio de autenticación pode requirir outra solicitude despois de que o cliente xa consumise a carga.

Orixe do corpoOpción de repetición
Corpo pequeno e finitoUnha memoria intermedia limitada pode conservar os seus bytes.
Ficheiro con buscaA interface de rebobinado compatible co cliente pode facelo repetible.
Xerador, tubo ou produtor en vivoUnha fonte dun só uso pode requirir outro deseño.

libcurl documenta devolucións de chamada de busca para usos como a autenticación en varias pasadas. Jersey ofrece modos de procesamento de entidades con búfer e fragmentados suxeitos ao comportamento do conector. Un exemplo de conector Jersey 2 Apache mostra a configuración con búfer. Ningún dos dous fai apropiadas as cargas ilimitadas en memoria.

Reproduza o método e a orixe do corpo que fallan. Un GET preparatorio non ten ningunha carga que repetir e non demostra que unha carga posterior comparta a súa conexión ou o seu estado de autenticación. Un destino, obxecto de cliente ou política de conexión novos poden cambialo. Un corpo baseado en ficheiro e un fluxo en vivo tamén difiren aínda que o seu texto de mostra sexa o mesmo.

Se usa búfer, defina o seu límite de tamaño, localización de almacenamento e vida útil. As cargas simultáneas multiplican o custo, e os datos sensibles permanecen onde se garde o búfer.

Autenticación previa a un proxy compatible coñecido pode evitar un desafío inicial. Non pode excluír cada rolda de autenticación, redirección ou conexión pechada posterior que poida esixir outro intento.

Manteña xuntos a resposta do proxy, o punto de consumo do corpo e o erro de repetición. Despois distinga a repetición do protocolo dun resultado de aplicación incerto: un envío pode terse procesado antes de que se perdese a súa resposta. Siga as regras de idempotencia do destino antes de envialo de novo.

Artigos relacionados