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