AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Bei IdHTTP bekomme ich einen 500 Error bei POST request
Thema durchsuchen
Ansicht
Themen-Optionen

Bei IdHTTP bekomme ich einen 500 Error bei POST request

Offene Frage von "geskill"
Ein Thema von gORDon_vdLg · begonnen am 15. Feb 2010 · letzter Beitrag vom 8. Sep 2010
Antwort Antwort
Benutzerbild von gORDon_vdLg
gORDon_vdLg

Registriert seit: 7. Nov 2009
26 Beiträge
 
Delphi XE Architect
 
#1

Bei IdHTTP bekomme ich einen 500 Error bei POST request

  Alt 15. Feb 2010, 22:25
Es ist eventuell eher ein Problem des HTTP Protokoll, aber fragen kostet ja nichts.
Ich bastle im Moment einen Video Downloader für verschiedene Hoster wie z.B. YouTube usw. Ich verwende dazu IdHTTP, also die Indys. Die Seite SEITE-XY (vorsicht, teils heftige Videos!) hat bei manchen Videos eine Abfrage wo der User gefragt wird ob er schon 18 ist. Wenn man es im Firefox bestätigt wird folgender Post request gesendet:

Code:
POST /age-verification.asp HTTP/1.1
Host: [url]www.xy.com[/url]
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2) Gecko/20100115 Firefox/3.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: [url]http://www.xy.com/age-verification.asp?goingtoURL=get.asp?i=V5088[/url]
Cookie: ASPSESSIONIDCSRSASQQ=BBNKMMDAHPCKNOPANDLNAMBB; __utma=54023469.1060955171.1266258765.1266258765.1266261211.2; __utmc=54023469; __utmz=54023469.1266258765.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); _csoot=1266258765171; _csuid=4a29a19622d7e271
Content-Type: application/x-www-form-urlencoded
Content-Length: 76

Userchoice=I+am+above+18+years+of+age&goingtoURL=get.asp%3Fi%3DV5088&state=1
Mit Folgendem Delphi-Code versuche ich das ganze nach zu machen:

Delphi-Quellcode:
parameter:=TStringStream.Create('Userchoice=I+am+above+18+years+of+age&goingtoURL=get.asp%3Fi%3D'+GetGetParam(url, 'i')+'&state=1');
IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
html:=IdHTTP1.Post('http://www.xy.com/age-verification.asp', parameter);
parameter.Free;
Wireshark verrät mir das Folgender Request zu stande kommt:

Code:
POST /age-verification.asp HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 76
Host: [url]www.xy.com[/url]
Accept: text/html, */*
Accept-Encoding: identity
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2) Gecko/20100115 Firefox/3.6
Cookie: ASPSESSIONIDCSRSASQQ=LNKLMMDAOBCGLOJIAEHACNOC
Cookie2: $Version="1"

Userchoice=I+am+above+18+years+of+age&goingtoURL=get.asp%3Fi%3DV5088&state=1
Als antwort bekomme ich bei meinem Delphi-Code einen 500 Errorcode zurück. (Internal Server Error) Komischerweise wird aber der Quelltext den ich haben möchte trotzdem gesendet, jedoch gibt IdHTTP.Post() keinen zurück, wahrscheinlich weil davon ausgegangen wird das nichts Sinnvolles ankommt.

Der Errorcode kommt aber nur wenn ich als Content-Type auch "application/x-www-form-urlencoded" angebe, wenn nicht kommt zwar kein Error, jedoch wird die Abfrage auch nicht bestätigt.

Weiß jemand was hier los ist?

Vielen Dank schon mal für alle Antworten!

Geändert von SirThornberry ( 8. Sep 2010 um 10:21 Uhr) Grund: URL-unkenntlich gemacht
  Mit Zitat antworten Zitat
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#2

Re: Bei IdHTTP bekomme ich einen 500 Error bei POST request

  Alt 15. Feb 2010, 22:34
Versuche mal Idhttp1.HandleRedirects := true;
  Mit Zitat antworten Zitat
Benutzerbild von gORDon_vdLg
gORDon_vdLg

Registriert seit: 7. Nov 2009
26 Beiträge
 
Delphi XE Architect
 
#3

Re: Bei IdHTTP bekomme ich einen 500 Error bei POST request

  Alt 15. Feb 2010, 22:48
Danke für die Antwort, aber da würde er sagen Error 302, damit habe ich schon Bekanntschaft gemacht Das habe ich bereits auf True gesetzt. Aber Trotzdem danke für deine Antwort!
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Bei IdHTTP bekomme ich einen 500 Error bei POST request

  Alt 8. Sep 2010, 10:18
Hi,
das Thema ist schon ein bisschen älter, aber ich hatte vor ein paar Wochen ein ähnliches Problem mit falschen Fehlercodes. Also der Server gibt absichtlich falsche Fehlercodes aus, um Automatisierte Scripte o.ä. zu stören.

Delphi-Quellcode:
try
  html := Post('http://www.toxicjunction.com/age-verification.asp', parameter);
except
  on E: EIdHTTPProtocolException do
  begin
    // Der Quellcode befindet sich in "E.ErrorMessage".
    // Ob der Fehler ein "Fake" ist oder nicht prüfe ich, indem ich nach
    // dem body-Tag im Quellcode suche.
    if not(Pos('<body>', LowerCase(E.ErrorMessage)) = 0) then
      html := E.ErrorMessage
    else
    begin
      // Fehlerbehandlung
    end;
  end;
end;
Außerdem würde ich in deiner Abfrage noch den Referer angeben, der wird gerne mal überprüft
Sebastian
  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 13:13 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