Entwickler-Ecke

Internet / Netzwerk - Problem mit Authentifikation bei IdHTTP und Webcam


Laserzicke - Do 17.01.13 13:03

Moderiert von user profile iconNarses: Abgetrennt von [url=http://www.entwickler-ecke.de/viewtopic.php?t=88784]hier[/url].

Hallo Zusammen,

hab das gleiche Problem und bin noch nicht ganz so fit in Delphi :-/

Ich habe Ip-Kameras über die man normalerweise per Imagepfad ein Bild laden kann:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  CamPath:= 'http://guest:guest@192.168.10.10/cgi-bin/guest/Video.cgi?media=JPEG';
  LDestStream := TMemoryStream.Create;
  LHttp := TIdHTTP.Create(nil);
  LHttp.Get(CamPath,LDestStream);
  LHttp.Free;
  LDestStream.Position := 0;
  LDestStream.SaveToFile('c:/tmp/cam1.jpg);

Das geht problemlos mit jeder Kamera, außer diese benötigt eine zusätzliche Bestätigung, und hier ist mein Problem! (Digitus DN-16053)
Den selben Imagepfad in der Adressleiste eines Browsers eingegeben, erscheint anschließend eine MessageBox (Sind sie sicher...mit Benutzername"guest" anmelden wollen?) welche man mit ok bestätigen muss um das Kamerabild zu sehen. Die Frage kommt immer, egal ob "admin" oder "guest". Der Kamerapfad /guest/ ist fest vorgegeben und unabhängig von der Authent.
Was muss ich der URI anfügen, damit das OK mit übergeben wird?


Mein zweiter Versuch per TWebbrowser:
Hier wird das Bild sofort angezeigt:

Delphi-Quelltext
1:
webbrowser1.Navigate('http://guest:guest@192.168.10.10/cgi-bin/guest/Video.cgi?media=JPEG');                    

Nun möchte ich das angezeigte Bild in eine Datei speichern( s. Oben).
Wie macht man den Screen vom Browser?
Bitte Quelltextbeispiel hinzufügen.
(Im Browser wird nur das Bild angezeigt, sonst nichts weiter)

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Muck - Do 17.01.13 19:53

Hallo,

ich wuerde sages das geht wenn DU diese 4 Zeilen vor Deinem .Get Kommando einfuegst:


Delphi-Quelltext
1:
2:
3:
4:
LHttp.Request.BasicAuthentication:=true;
LHttp.Request.UserName:='xxxx';
LHttp.Request.Password:='yyyy';
LHttp.MaxAuthRetries:=1;


Bei xxxx und yyyy natuerlich User und Password einsetzen.

Markus


Laserzicke - Fr 18.01.13 08:59

Hallo Muck,

ich bin begeistert, und ich war schon einmal so nah dran!
Die "BasicAuthentication" und "MaxAuthRetries" hatte ich nicht auf dem Schirm.

Prima, so gehts.
Danke !!!