Hallo !
Ich versuche eine Internetseite (
http://www.themoviedb.org/movie/1858)
runterzuladen, die mehrsprachig ist.
Die Spracherkennung geschieht anscheinend über den Browser.
Browser -> Sprache -> DE = Internetseite in deutsch
Browser -> Sprache -> EN = Internetseite in englisch
Ich will nun die Seite mit der GetHTML funktion runterladen, was auch geschieht, nur nicht in der richtigen Sprache. Ich erhalte immer die englische
html.
Nun gibt es in Delphi die
Indy Komponente IDHTTP.
Mit dieser kann man in der Request-Option die gewünschte sprache eintragen und somit erhält man die richtige
html.
Kann man nun durch modifizieren der unten gezeigten funktion das selbe ergebnis erzielen ?
Ich würde gerne auf die
Indy Komponenten verzichten.
Danke ! Bin für jede Hilfe dankbar.
Delphi-Quellcode:
function GetHTML(AUrl: string): string;
var
databuffer : array[0..4095] of char;
ResStr : string;
hSession, hfile: hInternet;
dwindex,dwcodelen,dwread,dwNumber: cardinal;
dwcode : array[1..20] of char;
res : pchar;
Str : pchar;
begin
//ResStr:='';
//Result:='';
if pos('http://',lowercase(AUrl))=0 then
AUrl:='http://'+AUrl;
hSession:=InternetOpen('InetURL:/1.0',
INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil,
0);
if assigned(hSession) then try
hfile:=InternetOpenUrl(
hsession,
pchar(AUrl),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
if assigned(hfile) then try
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile,
HTTP_QUERY_STATUS_CODE,
@dwcode,
dwcodeLen,
dwIndex);
res := pchar(@dwcode);
dwNumber := sizeof(databuffer)-1;
if (res ='200') or (res ='302') then begin
while (InternetReadfile(hfile,@databuffer,dwNumber,DwRead)) and (dwRead <>0) do begin
databuffer[dwread]:=#0;
Str := pchar(@databuffer);
resStr := resStr + Str;
Application.ProcessMessages;
end;
end else
ResStr := 'Status:'+res;
finally
InternetCloseHandle(hfile);
end;
finally
InternetCloseHandle(hsession);
end;
Result := ResStr;
end;