Autor Beitrag
Fakiz
Hält's aus hier
Beiträge: 12

Win Vista
Visual C# 2010, Visual Basic 2010
BeitragVerfasst: Di 24.04.12 18:53 
Guten Abend ich würde wie der Titel schon sagt gerne den Quellcode einer Internetseite (vermute mal das es sich um ein Serverinterface handelt) auslesen. Es handelt sich dabei um diese Seite:

*Klick Mich*

Nun habe ich versucht über einen Webclient an den Quellcode zu kommen sowie über Webrequest bei beiden varianten erhalte ich folgende Fehlermeldung:

Zitat:
Der Server hat eine Protokollverletzung ausgeführt.. Section=ResponseStatusLine


Dieser fehler tritt in folgender Zeile auf:

ausblenden Quelltext
1:
string title = titleRegex.Match(webClient.DownloadString(Fm4Url)).NextMatch().Value;					


Weiß den jemand woran das liegt?
Oliver M.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: Fr 27.04.12 15:44 
Eigentlich müsstest du mit
ausblenden C#-Quelltext
1:
string sourcecode = new StreamReader(WebRequest.Create(uri).GetResonse().GetResponseStream()).ReadToEnd();					

die Quellcode jeder http- (und soweit ich weis auch https-) Website auslesen können.
Die Fehlermeldung, die du genannt hast, hört sich so an, als würde sich der Server nicht richtig an das http-Protokoll halten, was mich aber sehr wundert. Wenn du mir ein paar genauere Detais geben könntest, könnte ich dir vielleicht weiter helfen.
MfG Oliver.
Fakiz Threadstarter
Hält's aus hier
Beiträge: 12

Win Vista
Visual C# 2010, Visual Basic 2010
BeitragVerfasst: Fr 27.04.12 16:55 
Das dachte ich auch, ich hatte auch bislang noch nie Probleme beim auslesen eines Quellcodes. Die Fehlermeldung kommt nicht wenn ich die einstellungen meines Projekts ändere und

ausblenden Quelltext
1:
<httpWebRequest useUnsafeHeaderParsing = "false" />					


auf True setze. Jetzt kann ich den Quellcode zwar "auslesen" das ganze geht dann aber in eine Endlosschleife über, abgesehen davon besteht der String den ich zurück bekomme aus lauter Sonderzeichen. Der Quellcode läßt sich allerdings via Controll (Webbrowser) ohne Probleme auslesen und verwerten.

Das sind jetzt alle wichtigen Infos die mir im Moment einfallen.
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Fr 27.04.12 21:51 
Hi,
also bei der URL handelt es sich um einen mp3-Stream.
Was willst Du denn da auslesen? Der Stream ist doch für einen Player gedacht, um sich Internetradio anzuhören.
Oliver M.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: So 29.04.12 10:13 
Der Web-Browser öffnet es ausolut Sauber, das heißt, es hanselt sich um HTML. Außer dem ist es das http-Protokoll, was, egal was der Inhalt ist, vom HttpWebRespone ausgelesen werden müssste.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 29.04.12 11:45 
Der Webbrowser gibt auch einen Useragent an. Der Server prüft den und schickt schlicht je nach Useragent etwas anderes zurück. Und da du keinen angibst... Mit geht es problemlos, habs grad getestet.
Oliver M.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: So 29.04.12 12:14 
user profile iconjaenicke, du hast recht. Macht aber nichts, denn man kann ja einfach einen UserAgent angeben:

ausblenden C#-Quelltext
1:
2:
3:
4:
string uri = "http://mp3stream1.apasf.apa.at:8000/index.html";
HttpWebRequest request = HttpWebRequest.CreateHttp(uri);
request.UserAgent = "Mozilla";
string response = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();

Dann klappts, auch wenn man useUnsafeHeaderParsing nicht auf true setzt :wink:.

MfG Oliver M.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 29.04.12 13:01 
user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
Dann klappts, auch wenn man useUnsafeHeaderParsing nicht auf true setzt :wink:.
Habe ich ja geschrieben, dass es so geht (mein Testcode sah fast genauso aus). ;-)
Oliver M.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: So 29.04.12 13:08 
Du hast zwar gesagt, dass es geht und dass man einen UserAgent angeben muss, aber nicht wie. Also habe ich nochmel den Code gepostet.
Fakiz Threadstarter
Hält's aus hier
Beiträge: 12

Win Vista
Visual C# 2010, Visual Basic 2010
BeitragVerfasst: So 29.04.12 23:18 
Ich danke euch vielmals, jetzt kann ich mir den Webbrowser sparen.