问题描述
我当前正在将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 (将#修改为@)