Ja, in 10.4.1 so:
in System.Net.HttpClient.Win
Delphi-Quellcode:
// Send Request
if not WinHttpSendRequest(LRequest.FWRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, LDataLength, 0) then
Exit(HandleExecuteError(@SNetHttpClientSendError, ARequest));
und dann:
Delphi-Quellcode:
function TWinHTTPClient.HandleExecuteError(AErrorMsg: PResStringRec; const ARequest: THTTPRequest): TWinHTTPClient.TExecutionResult;
var
LastError: Cardinal;
begin
LastError := GetLastError;
case LastError of
ERROR_WINHTTP_SECURE_FAILURE:
if (SecureFailureReasons <> [THTTPSecureFailureReason.SecurityChannelError]) and
not TWinHTTPRequest(ARequest).FServerCertificateAccepted then
Exit(TExecutionResult.ServerCertificateInvalid)
else
raise ENetHTTPClientException.CreateResFmt(AErrorMsg, [LastError, SysErrorMessage(LastError, TWinHttpLib.Handle)]);
ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED:
Exit(TExecutionResult.ClientCertificateNeeded);
ERROR_WINHTTP_RESEND_REQUEST:
Exit(TExecutionResult.Retry);
else
if (LastError = ERROR_WINHTTP_OPERATION_CANCELLED) and
(SecureFailureReasons = [THTTPSecureFailureReason.CertNotAccepted]) then
raise ENetHTTPCertificateException.CreateRes(@SNetHttpServerCertificateNotAccepted)
else
if (LastError = ERROR_WINHTTP_OPERATION_CANCELLED) or TWinHTTPRequest(ARequest).FCancelled then
Exit(TExecutionResult.Success)
else
raise ENetHTTPClientException.CreateResFmt(AErrorMsg, [LastError, SysErrorMessage(LastError, TWinHttpLib.Handle)]);
end;
end;
Ich habe nun aber erstmal damit zu tun, dass über das Provisorium die Daten alle rüber kommen. Dauert ein wenig. Danach spreche ich mit dem Kunden, ob dasa Provisorium noch 6 Wochen laufen oder wir weiter suchen sollen. Kostet ja alles Geld.
Vielen Dank nochmal, falls ich die Tage etwas Zeit habe, mache ich mir ein Testprogramm.