AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit idHTTP1.Get (passwortgeschützte Seite)
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit idHTTP1.Get (passwortgeschützte Seite)

Ein Thema von SkyWalker07 · begonnen am 30. Jul 2007 · letzter Beitrag vom 30. Jul 2007
Antwort Antwort
SkyWalker07

Registriert seit: 30. Jul 2007
4 Beiträge
 
#1

Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 13:32
Hallo,
ich möchte mit idHTTP eine Datei mit reinem Textinhalt von einem Serverherunterladen. Auf dem Server sind mehrere Dateien, mit dem Format *5-stellige-Zahl*.sav (die 5-stellige-Zahl wird id genannt).
Das Programm, das ich schreibe, soll eine GET-Anweisung an ein PHP-Script schicken, wobei die id übergeben wird, sodass das PHP-Script weiß, von welcher Datei der Inhalt zurückgegeben werden soll.
Soweit, so gut. Das funktioniert auch noch.

Jetzt kommt aber mein Problem: das PHP-Script hat durch htaccess eingeschränkte Zugriffsrechte. Ruft man das PHP-Script über einen normalen Browser auf, erscheint die vom Browser standardmäßige Eingabeaufforderung des Benutzernamens und des Passwortes, um auf das Script zugreifen zukönnen.
Also muss das Programm auch den Benutzernamen und das Passwort übergeben.
Im Internet (ich glaube, das war sogar hier im Forum), habe ich folgendes gefunden, wie man das Problem lösen könnte:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var id : string;
begin
  id:=Edit1.Text;
  if (TryStrToInt(id)) and (Length(id)=5) then
    begin
      idHTTP1.Request.Username:='Benutzername';
      idHTTP1.Request.Password:='Passwort';
      try
        begin
          Memo1.Text:=idHTTP1.Get('http://www.***.de/update.php?id=' + id);
          MessageDlg('Die Daten wurden erfolgreich von dem Server heruntergeladen.', mtInformation, [mbOk], 0);
        end;
      except
        on E: Exception do
          MessageDlg('Es ist der folgende Fehler beim Herunterladen der Daten aufgetreten: ' + E.Message, mtError, [mbOk], 0);
      end;
    end;
end;
Und der Fehler, der auftritt ist: HTTP/1.1 401 Authorization Required
Mit anderen Worten, es wurden nicht die richtigen, oder keine Zugangsdaten angegeben.

Wo ist jetzt der Fehler in meinem Programm?
Ich hoffe ihr könnt mir helfen.
Danke schonmal!

MfG, Matthias
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 13:38
schreib doch username und password in die url.

Code:
http://username:password@http://www.webseite.tld
Gruß
tr909
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 13:40
Bist du sicher das die parameter per GET und nicht per POST erwartet werden?
Markus Kinzler
  Mit Zitat antworten Zitat
SkyWalker07

Registriert seit: 30. Jul 2007
4 Beiträge
 
#4

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 13:51
Danke für deine Antwort!
Zitat von tr909:
http://username:password@http://www.webseite.tld
Wenn ich das so mache, kommt bei dem Programm der Fehler "Authorization Required", wenn ich es direkt im Browser (IE)eingebe kommt "Datei nicht gefunden" (bei "http://username:password@http://www.webseite.tld" und "http://username:password@www.webseite.tld"), mit dem Firefox allerdings klappt es.
  Mit Zitat antworten Zitat
SkyWalker07

Registriert seit: 30. Jul 2007
4 Beiträge
 
#5

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 13:57
Zitat von mkinzler:
Bist du sicher das die parameter per GET und nicht per POST erwartet werden?
Jaein.
Mit GET-Variablen haben wir (das machen ein Freund (er macht PHP) und ich (ich mach das Programm dazu)) auch gemacht, sodass alles in der URL übergeben wurde. ...update.php?user=Benutzer&pw=Passwort&id=12345
Doch es wird die gesamte Url mit geloggt, also auch Benutzername und Passwort.

Deshalb wollten wir es so machen.
Wie kann man denn noch die Parameter übergeben? Bei idHTTP1.Post(url, Strings) ist es klar. Doch das geht ja so nicht bei GET.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 14:03
Dann ändere)oder dein freund) das Formular doch in POST
Markus Kinzler
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 14:07
Füge hinter
Code:
idHTTP1.Request.Username:='Benutzername';
idHTTP1.Request.Password:='Passwort';
noch
Code:
idhttp1.Request.BasicAuthentication := true;
ein. Dann sollte es gehen.

Gruß
tr909

p.s.: Die Eingabe in Form von http://username:password@http://www.webseite.tld wurde von MS mal mit einem Security-Update rausgepatched Aber mit dem FF geht es noch.
  Mit Zitat antworten Zitat
SkyWalker07

Registriert seit: 30. Jul 2007
4 Beiträge
 
#8

Re: Problem mit idHTTP1.Get (passwortgeschützte Seite)

  Alt 30. Jul 2007, 14:10
Genau das war es!
Danke tr909!!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz