![]() |
Bei IdHTTP bekomme ich einen 500 Error bei POST request
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:
Mit Folgendem Delphi-Code versuche ich das ganze nach zu machen:
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
Delphi-Quellcode:
Wireshark verrät mir das Folgender Request zu stande kommt:
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;
Code:
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.
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 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! |
Re: Bei IdHTTP bekomme ich einen 500 Error bei POST request
Versuche mal Idhttp1.HandleRedirects := true;
|
Re: Bei IdHTTP bekomme ich einen 500 Error bei POST request
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!
|
AW: Bei IdHTTP bekomme ich einen 500 Error bei POST request
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:
Außerdem würde ich in deiner Abfrage noch den Referer angeben, der wird gerne mal überprüft ;)
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz