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 (将#修改为@)