Como ter uma solicitação de vôlei confiável, sem política de novas tentativas

Quando estou em uma conexão lenta e fazendo uma solicitação POST, o Volley tenta novamente minha solicitação várias vezes e depois que tudo acaba atingindo minhaerrorListener. Às vezes, essas tentativas realmente conseguiram postar dados.

O usuário assumirá que a solicitação falhou, mas, na verdade, se eles atualizassem os dados, eles veriam que os dados foram postados duas vezes no servidor (ou se houver muitas tentativas bem-sucedidas no grupo).

Quero dar ao Volley uma política de repetição muito estúpida:

Desejo que ele tente uma solicitação por 15 segundos e se a solicitação não chegar ao servidor dentro de 15 segundos e voltar com uma resposta para acionar oerrorListener. Não quero que tente novamente.

A única preocupação é que, se o Volley tentar, o pedido chegará ao servidor dentro de 20 a 25 segundos, mas então ele acionará oerrorListener e os dados ainda foram postados.

O HTTP segue um prazo após o qual 100% dos dados não serão publicados porque a solicitação demorou muito? Talvez 40 segundos? Se for esse o caso, eu posso continuar com o pedido por 40 segundos.

Em tudo:

Não há novas tentativas e garanta 100% de que, se os dados forem publicados na primeira tentativa, vá parasuccessListener e se não foi publicado (a solicitação morreu devido à demora ou resposta de erro do servidor)errorListener.

Eu estava pensando em fazer algo com o defaultRetryPolicy ... comoDefaultRetryPolicy(15000, 0, 1), embora eu ache que o último parâmetro não importa, qual é o ponto de retirada sem novas tentativas.

Como conseguiria o que pedi dois parágrafos de volta?

questionAnswers(0)

yourAnswerToTheQuestion