2012-10-16 3 views
0

사이트에서 IdHTTP XML 문서를 가져올 수 없습니다. 나는 항상 403/HTTP 1.1 및 text/html (텍스트/xml 필요)XML을 가져 오는 IdHTTP XML, 도와주세요

답변을 받았고 XML 파일을 모두 가져 오는 경우. 하지만 프록시가 필요해. 그래서 꼭해야 해. 시냅스를 사용할 때 변경되지 않습니다. 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

그래서, 당신은 당신의 POST 요청을 정교하게 수 있을까? 'GamesBody'에서 보내는 내용은 무엇입니까? 보안 연결을 사용하고 있습니까? 어떤 종류의 프록시 인증을 사용하고 있습니까? – TLama

답변

0

MSXML은 프록시 설정이있는 MSIE (Windows Internet Epxlorer)를 사용합니다. TWebBrowser를 사용해 볼 수도 있습니다. 또한 TWebBrowser는 MSIE의 일부이거나 아마도 Windows 관리자가 설정 한 프록시를 가지고 있습니다.

synapse 또는 idHTTP를 사용하면 수동으로 프록시를 설정해야합니다.

HTTP 403은 프록시에 올바른 로그인/비밀번호를 지정하지 못했음을 나타냅니다. 또는 NTLM 인증이 사용됩니다. HTTP 403 오류가 발생한 문서를 읽으십시오 - 유용한 힌트를 포함 할 수 있습니다. 모두

그래서

모든 :

1) 설정이 필요한 어떤 인증 모드 것은 지원되는 프록시 당신에게 윈도우 관리자를 참조하십시오.

2)를 눌러 retag 버튼 델파이의 사용자 지정 버전

3)을 눌러 편집 링크에 대한 적절한 태그를 추가하고 프록시 설정을 추가하면 어떤 임의의 텍스트로 대체 할 수있는 관리자 (로그인과 암호에 의해 당신에게) 및 또한 프록시를 통해 연결하려는 idHTTP 코드를 추가하십시오.

4) 최신 Indy 소스를 다운로드하십시오. Indy 10은 Microsoft NTLM 프록시 모드에서 문제가 있다고 말했고 Indy 9는 NTLM을 전혀 지원하지 않습니다.

샘플 NTLM 프록시 코드 : http://bredcompmaniak.blogspot.com/2010/09/ntlm-indy-10.html