Aquisição assíncrona de evidências de assinatura

THPDFSignatureEvidenceTask adquire tokens de carimbo de tempo, respostas OCSP e CRLs em trabalhadores em segundo plano sem acoplar o HotPDF a uma pilha específica de HTTP, proxy ou autenticação

Solicitações e transporte

Cada THPDFSignatureEvidenceRequest identifica o tipo de evidência, URI, tipo de conteúdo, corpo da solicitação, identificador de correlação e tamanho máximo aceito de resposta

O callback de transporte recebe uma solicitação, um número de tentativa baseado em um e um token de cancelamento e retorna uma resposta, atraso de nova tentativa opcional, texto de diagnóstico e um de setsSucceeded, setsRetry, setsPermanentFailure ou setsCancelled

O callback pode usar THTTPClient, Indy, WinHTTP, um cliente de proxy corporativo ou um serviço offline específico do aplicativo

Nova tentativa e concorrência

THPDFSignatureEvidenceRetryPolicy.Default realiza até três tentativas, começa em 250 milissegundos, dobra atrasos até um teto de 10 segundos e limita atrasos de nova tentativa solicitados pelo servidor a 30 segundos

A contagem de trabalhadores é limitada por tarefa, a ordem das solicitações permanece estável no array de resultados, as esperas de nova tentativa consultam o cancelamento a cada 50 milissegundos e exceções de transporte entram no caminho de nova tentativa com sua mensagem de diagnóstico retida

Resultados e cancelamento

SnapshotResults retorna uma cópia profunda thread-safe enquanto a aquisição continua, WaitForResults espera a conclusão e Cancel marca trabalho enfileirado e ativo como cancelado por meio de um token compartilhado

Os resultados distinguem sucesso, falha permanente, novas tentativas esgotadas, cancelamento e respostas superdimensionadas e incluem a contagem de tentativas, bytes de resposta e o último texto de diagnóstico

Bytes de carimbo de tempo bem-sucedidos podem alimentar THPDFCMSSignOptions.GetSignatureTimeStamp, enquanto bytes OCSP e CRL podem preencher atributos de revogação de assinatura, entradas DSS ou THPDFCertificateValidationOptions