Használata pl.:
LoadFromURL2('www.sg.hu','/forum.php','proxyuser','proxypassword','','');
procedure TForm1.LoadFromURL2(Site,Document,ProxyUser,ProxyPWD,User,PWD: string);
var
hOpenHandle, hConnectHandle, hResourceHandle:HINTERNET;
dwReserved, dwStatus: DWORD;
pStatus:pointer;
dwStatusSize:DWORD;
buf: array[0..16383] of byte;
dwBytesRead: cardinal;
st: TMemoryStream;
begin
try
hOpenHandle := InternetOpen('MSIE',
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hConnectHandle := InternetConnect(hOpenHandle,
PChar(Site),
INTERNET_INVALID_PORT_NUMBER,
nil,
nil,
INTERNET_SERVICE_HTTP,
0,0);
try
hResourceHandle := HttpOpenRequest(hConnectHandle, 'GET',
PChar(Document),
nil, nil, nil,
INTERNET_FLAG_KEEP_CONNECTION,
0);
try
HttpSendRequest(hResourceHandle, nil, 0, nil, 0);
pStatus:=addr(dwStatus);
dwStatusSize:=sizeof(dwStatus);
dwReserved:=0;
HttpQueryInfo(hResourceHandle,
HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE,
pStatus,
dwStatusSize,
dwReserved);
if dwStatus=HTTP_STATUS_PROXY_AUTH_REQ then
begin
InternetSetOption(hResourceHandle,
INTERNET_OPTION_PROXY_USERNAME,
PChar(ProxyUser),
Length(ProxyUser)+1);
InternetSetOption(hResourceHandle,
INTERNET_OPTION_PROXY_PASSWORD,
PChar(ProxyPWD),
Length(ProxyPWD)+1);
HttpSendRequest(hResourceHandle, nil, 0, nil, 0);
pStatus:=addr(dwStatus);
dwStatusSize:=sizeof(dwStatus);
dwReserved:=0;
HttpQueryInfo(hResourceHandle,
HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE,
pStatus,
dwStatusSize,
dwReserved);
end;
if dwStatus=HTTP_STATUS_DENIED then
begin
InternetSetOption(hResourceHandle,
INTERNET_OPTION_USERNAME,
PChar(User),
Length(User)+1);
InternetSetOption(hResourceHandle,
INTERNET_OPTION_PASSWORD,
PChar(PWD),
Length(PWD)+1);
HttpSendRequest(hResourceHandle, nil, 0, nil, 0);
end;
st:=TMemoryStream.Create;
try
repeat
InternetReadFile(hResourceHandle, @buf, 8192, dwBytesRead);
st.Write(buf, dwBytesRead);
until dwBytesRead = 0;
st.Position:=0;
memo1.Lines.LoadFromStream(st);
finally
st.Free;
end;
finally
end;
finally
InternetCloseHandle(hResourceHandle);
end;
finally
InternetCloseHandle(hConnectHandle);
end;
finally
InternetCloseHandle(hOpenHandle);
end;
end;