Autor |
Beitrag |
Fakiz
Hält's aus hier
Beiträge: 12
Win Vista
Visual C# 2010, Visual Basic 2010
|
Verfasst: 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:
Quelltext 1:
| string title = titleRegex.Match(webClient.DownloadString(Fm4Url)).NextMatch().Value; |
Weiß den jemand woran das liegt?
|
|
Oliver M.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: Fr 27.04.12 15:44
Eigentlich müsstest du mit
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 
Hält's aus hier
Beiträge: 12
Win Vista
Visual C# 2010, Visual Basic 2010
|
Verfasst: 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
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
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: 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.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: 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
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: So 29.04.12 12:14
jaenicke, du hast recht. Macht aber nichts, denn man kann ja einfach einen UserAgent angeben:
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  .
MfG Oliver M.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 29.04.12 13:01
|
|
Oliver M.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: 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 
Hält's aus hier
Beiträge: 12
Win Vista
Visual C# 2010, Visual Basic 2010
|
Verfasst: So 29.04.12 23:18
Ich danke euch vielmals, jetzt kann ich mir den Webbrowser sparen.
|
|