【问题标题】:IdHTTP XML, getting xml, help pleaseIdHTTP XML,正在获取 xml,请帮忙
【发布时间】:2012-10-16 04:58:35
【问题描述】:

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

【问题讨论】:

  • 那么,你能详细说明你的 POST 请求吗?您在 GamesBody 中发送的内容是什么?您是否使用安全连接?您正在使用哪种代理身份验证(如果有)?

标签: xml delphi delphi-2010 msxml idhttp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2012-04-24
    • 1970-01-01
    • 2017-11-08
    相关资源
    最近更新 更多