我无法从网站上获取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?
答案 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