AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404
Thema durchsuchen
Ansicht
Themen-Optionen

IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

Ein Thema von Hedge · begonnen am 12. Nov 2009 · letzter Beitrag vom 16. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#1

IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 00:37
Habe auf einem Form die oben genannten Komponenten verstreut, die beiden OpenSSL-Bibliotheken liegen im Projektverzeichnis und beim IdHTTP-Objekt ist der IOHandler brav auf das IdSSLIOHandlerSocketOpenSSL-Objekt gesetzt

Damit der Server die Anfrage akzeptiert noch den UserAgent gesetzt:

IdHttp1.Request.UserAgent:='Mozilla/4.0';

Memo1.Lines.Text := IdHTTP1.Post('https://www.homepage.com/test.php',data);

Das gibt nen 404 Fehler.

Wenn man die URL im Browser hingegen eingibt kommt im Firefox:
Dieser Verbindung wird nicht vertraut
weil kein gültiges Zertifikat vorhanden ist.

Ist auch egal, aber was habe ich vergessen zu setzen?
Habe leider kein Tutorial diesbezüglich gefunden.
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 11. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#2

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 01:01
Nur eine Vermutung, aber versuch mal folgendes:

Delphi-Quellcode:
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode := sslmClient;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyDepth := 5;
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#3

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 01:03
Danke für die Antwort zu später Stunde, aber es hat leider nichts gebracht.
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#4

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 12:08
Hi Hedge,

das sieht auf den Ersten Blick alles richtig aus. Der Fehler 404 ist ja jedem Surfer bekannt, also muß hier etwas am Server nicht mitspielen oder Du hast einen Tippfehler in der URL. Wenn Du Zugriff auf den Server hast prüfe mal, ob da irgendeine htaccess Datei die Zugriffe umleitet (im Indy IdHTTP entsprechend HandelRedirects auf true setzen).

Zeig auch mal bitte, wie Du Data befüllst. Das dürfte mit dem Problem aber nichts zu tun haben. Für mich sieht es so aus, als wenn da wirklich ein Fehler in der URL ist oder der Server am Ende der Ausführung von test.php auf etwas umleitet, was es nicht gibt - unter Umständen ist die Umleitung ja abhängig von den POST Daten.

Mach Doch auch mal ein get auf test.php (ohne Daten) und guck, ob Du eine Fehlermeldung bekommst.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#5

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 14:18
1.) Die URL stimmt, im Browser meckert er bei der selben URL nur über die fehlende vertrauenswürdige Verbindung
2.) .htaccess mal rausgenommen, aber es kam trotzdem der 404-Fehler
3.) HandleRedirects=true auch 404
4.) Get gibt auch ein 404
5.) data:

Delphi-Quellcode:
var
  data: TIdMultiPartFormDataStream;
begin
    data.AddFormField('field1', 'test');
    data.AddFormField('field2', 'value2');
    data.AddFormField('field3', 'value3');
...
Hast du noch andere Ideen wie ich prüfen kann was in die Hose geht?
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 14:24
Hi Hedge,

ok, danke für die Info. Kannst Du mir die echte URL mal per PN schicken? Dann kann ich im Debugger und mit einem Netzwerk Sniffer gucken, ob auch die richtige Adresse aufgerufen wird.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 14:31
Hi,

also Zwischenmeldung: Beim GET bekomm ich ein 403 (Forbidden) und kein 404... Also bisher konnte ich feststellen, dass der Server da irgendwelche merkwürdigen Umleitungen macht bzw überhaupt keinen Content zurückliefert.

Edit: Hab das mit dem UserAgent auch gerade gesehen, bevor sich nun mein Rechner verabschiedet hat

Edit2: Der Server sendet mir überhaupt keine Antwort, auch mit angepasstem UserAgent.

Weiter gehts...

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#8

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 14:51
Du musst nen User-Agent setzen.

IdHttp1.Request.UserAgent:='Mozilla/4.0';
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#9

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 12. Nov 2009, 22:50
Assertor und ich haben so ein bisschen geschnackt.
Er ist dabei auf folgende Lösung gekommen:

Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  data: TStringList;
begin
  data := TStringList.Create;
  try
    data.Values['test'] := 'abc';
    IdHttp1.Request.UserAgent:='Mozilla/4.0';
    Memo1.Lines.Text := IdHTTP1.Post('https://192.168.101.101/test.php', data);
  finally
    data.Free;
  end;
end;
ich hatte eins Übersehen: TIdMultiPartFormDataStream funktioniert nur, wenn Du eine Webseite aufrufst, die ein Formular hat.
OK, habe das geändert, aber kriege nach wie vor einen 404.
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#10

Re: IdHTTP + IdSSLIOHandlerSocketOpenSSL = 404

  Alt 13. Nov 2009, 14:55
Hi,

Zitat von Hedge:
Assertor und ich haben so ein bisschen geschnackt.
Er ist dabei auf folgende Lösung gekommen:
Richtig. TStringList für Übertragen von POST und GET Parametern. MultiPartFormData ist für das Senden von Feldern eines HTTP Formulars (Loginseiten o.ä.).

Zitat von Hedge:
OK, habe das geändert, aber kriege nach wie vor einen 404.
Ich auch, aber nur bei Deinem Server. Ruf doch mal im Firefox die Addresse, die Du mir per PN genannt hast auf. Bestätige die Zertifikat-Warnung und boom - schon bist Du auf einer Confixx Einrichtungsseite und NICHT auf der test.php.

Was da schiefläuft: Dein Server ist nicht richtig eingerichtet. Überlicherweise zeigen SSL Verbindungen bei Shared / Virtual Hosts auf andere Verzeichnisse.

Also: Kein Indy Fehler

Das erste war falsche Nutzung vom Entwickler - zugegeben das hab ich auch übersehen -, das hier ist nun ein falsch eingesteller Server. Drastisch gesagt, aber wenn man das so nicht schreibt, lesen das hier wieder welche, verstehen es nicht und es hält sich wieder das blöde Gerücht Indy sei ja so schlecht für die nächsten 10 Jahre

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:09 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