Ну, для начала, вы говорите серверу, что вы отправляете HTML вместо XML. 'text/html'
неверно Content-Type
для XML.
Во-вторых, вы не экранируете значения, которые вы вставляете в XML, если они содержат какие-либо зарезервированные символы. Вы действительно должны использовать правильную библиотеку XML для подготовки ваших данных постов.
Наконец, ваша обработка исключений не очень хорошо структурирована.
Попробуйте вместо этого:
Var
XDoc, ReturnStr: String;
XMLToSend: TStringStream;
IdHTTP1: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
begin
with Datam1.CCSetupTbl do
begin
XDoc := ...;
end;
IdHTTP1 := TIdHTTP.Create;
try
with IdHTTP1 do
begin
Request.Accept := 'text/html';
Request.ContentType := 'text/xml'; // or 'application/xml', or whatever the server actually expects...
Request.CharSet := 'utf-8';
Request.CacheControl := 'no-cache';
ReadTimeout := 30000;
ConnectTimeout := 30000;
Request.BasicAuthentication := False;
Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)';
HTTPOptions := [hoForceEncodeParams];
end;
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP1);
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1_2];
IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
XMLToSend := TStringStream.Create(XDoc);
try
ReturnStr := IdHTTP1.Post('https://certtransaction.elementexpress.com', XMLToSend);
finally
XMLToSend.Free;
end;
finally
IdHTTP1.Free;
end;