如何解决TidHTTP XML响应不包含正文
我当前正在将XML POST(使用TidHTTP)发送到Web服务器,并且已经成功获得响应,但是正文丢失了!我觉得我已尽一切努力使此工作正常!该正文包含重要的数据,我需要对其进行解析以供以后使用。
我是否也可以让TidHTTP返回正文?
谢谢!
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;`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。