获取xml的IdHTTP XML,请帮忙

时间:2012-10-16 04:58:35

标签: xml delphi delphi-2010 msxml idhttp

我无法从网站上获取IdHTTP XML文档。我总是得到答案403 / HTTP 1.1和text / html(需要text / xml)

完全使用MSXML并获取XML文件。但我需要一个代理,所以需要idhtop。使用突触时不会改变。

使用msxml:

CoInitialize(nil);
     GetXML:={$IFDEF VER210}CoXMLHTTP{$ELSE}CoXMLHTTPRequest{$ENDIF}.Create;
     GetXML.open('POST', '***************', false, EmptyParam, EmptyParam);
     GetXML.setRequestHeader('Host', '***************');
     GetXML.setRequestHeader('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
     GetXML.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     GamesBody:='***************';
     GetXML.send(GamesBody);
     Form1.Memo2.Lines.Text:=GetXML.responseText;
     ResultPage:=GetXML.responseText;
     if Pos('error code', ResultPage)=0 then
     begin
    CoUninitialize;

如何设置IdHTTP?所有设置都已更改100次或连接到代理MSXML?

1 个答案:

答案 0 :(得分:0)

MSXML使用MSIE(Windows Internet Epxlorer),它具有代理设置。您可以尝试使用TWebBrowser来获取它 - 它也是部分或MSIE,并且可能还有代理设置我的Windows管理员。

使用synapse或idHTTP您必须手动设置代理。

HTTP 403表示您未能为代理指定正确的登录名/密码。或者使用NTLM授权。阅读您在HTTP 403错误中获得的文档 - 它可以包含有用的提示。

总而言之:

1)向Windows管理员咨询所需的代理设置以及支持的身份验证模式。

2)按retag按钮,为您指定的Delphi版本添加适当的标签

3)按编辑链接并添加管理员告诉您的代理设置(您可以用一些随机文本替换的登录名和密码),并添加您尝试通过代理连接的idHTTP代码。

4)下载最新的Indy来源。 Indy 10告诉微软NTLM代理模式有麻烦,Indy 9可能根本不支持NTLM。

示例NTLM代理代码:http://bredcompmaniak.blogspot.com/2010/09/ntlm-indy-10.html