I am currently sending an XML POST (using TidHTTP) to a web server, and I am successfully getting a response, however the body is missing! I feel like I have tried everything to get this working! The body contains crucial data which I would need to parse for use later on.
Is there a way for me to get TidHTTP to return the body too?
Thanks!
procedure TMainForm.sendXML(correlationID : String);
var
pollXML : TStringList;
AuthNetHTTP: TIdHttp;
AuthNetSSL: TIdSSLIOHandlerSocketOpenSSL;
XMLRequest: TMemoryStream;
XMLResponse: String;
Response : TStringList;
begin
pollXML := TStringList.Create;
pollXML.Add('<?xml version="1.0" encoding="UTF-8"?>');
pollXML.Add('<GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope">');
pollXML.Add('<EnvelopeVersion>2.0</EnvelopeVersion>');
pollXML.Add('<Header>');
pollXML.Add('<MessageDetails>');
pollXML.Add('<Class>'+HMRC_submission_mode+'</Class>');
pollXML.Add('<Qualifier>poll</Qualifier>');
pollXML.Add('<Function>submit</Function>');
pollXML.Add('<TransactionID></TransactionID>');
pollXML.Add('<CorrelationID>'+correlationID+'</CorrelationID>');
pollXML.Add('<Transformation>XML</Transformation>');
pollXML.Add('</MessageDetails>');
pollXML.Add('</Header>');
pollXML.Add('<GovTalkDetails>');
pollXML.Add('<Keys/>');
pollXML.Add('</GovTalkDetails>');
pollXML.Add('</GovTalkMessage>');
pollXML.SaveToFile(GetCurrentDir+'\'+'\active_poll_xml.xml',TEncoding.UTF8);
XMLRequest := TMemoryStream.Create;
XMLRequest.LoadFromFile(GetCurrentDir+'\'+'\active_poll_xml.xml');
//Prep Web Request
AuthNetHTTP := TidHTTP.Create(nil);
AuthNetSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
AuthNetHTTP.IOHandler := AuthNetSSL;
AuthNetHTTP.Request.ContentType := 'text/xml';
AuthNetHTTP.ConnectTimeout := 10000;
AuthNetHTTP.ReadTimeout := 10000;
AuthNetHTTP.Request.ContentEncoding := 'utf-8';
try
XMLResponse := AuthNetHTTP.Post(pollURL, XMLRequest);
Response := TStringList.Create;
Response.Add(XMLResponse);
Response.SaveToFile(GetCurrentDir+'\'+'Java\PollResults.xml');
ShowMessage(XMLResponse);
AuthNetHTTP.Disconnect;
except on e: exception do
ShowMessage('Server Error: ' + e.message);
end;
AuthNetHTTP.Free;
AuthNetSSL.Free;
end;`