0

我无法从该站点获取 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?

4

1 回答 1

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 被告知在 Microsoft NTLM 代理模式下存在问题,而 Indy 9 可能根本不支持 NTLM。

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

于 2012-10-16T06:12:07.423 回答