加载远程xml文件

ria*_*iad 6 xml delphi

我需要知道如何从需要身份验证的服务器加载远程xml文件.使用下面的代码:

procedure TForm1.Button1CLICK(Sender: object); 
Var xmld : TXMLDocument;
begin
   xmld.LoadFromFile('http://mysite');
   xmld.active := true;
end;
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里放置用户凭据.执行时,出现错误"访问被拒绝".请有人帮忙吗.提前致谢

vcl*_*per 6

那么这实际上是一个由两部分组成的问题:

  1. 如何从需要身份验证的互联网上的服务器下载文档?

  2. 如何动态地将XML文档加载到XmlDocument对象中?

您可以使用IdHttp组件(已在Indy包中提供并与Delphi一起安装)从服务器检索XML文档.为此,您可以调用其Get方法,将XML文档地址作为参数传递.您可以将结果检索为字符串或流.

如果服务器正在使用身份验证,那么您应首先检测它使用的身份验证方法类型; 如果它使用HTTP身份验证,IdHttp已允许您通过提供Request属性来定义HTTP请求参数.您可以使用此属性设置Username\Password和其他参数.如果它使用基于cookie的身份验证,您可以将cookie管理器对象连接到IdHttp,并向服务器提供所需的cookie.服务器可能使用Web表单进行身份验证,并将cookie返回给您,或返回会话ID.因此,了解服务器使用的身份验证方法非常重要.

如果您不知道服务器使用的身份验证方法,您可以询问他们的支持团队,或者您可以安装类似Wireshark的嗅探器,并尝试使用Web浏览器连接到服务器,并捕获服务器和服务器之间交换的数据.您的浏览器,并分析它以找出使用的方法.

无论如何,一旦收到XML数据,就可以使用其LoadFromStream方法或其XML属性将其加载到TXmlDocument实例中.