none
HttpWebRequest RRS feed

  • Frage

  • Hallo,

     

    ich würde gerne wissen,

    wie ich eine website "requeste".

    Das ist mir bisher leider nicht gelungen.

    Ich bin momentan etwa so weit:

          HttpWebRequest httpReq = 
            (HttpWebRequest) WebRequest.Create("http://www.foo.de/statistics.php?info=default");
          httpReq.KeepAlive = false;
          httpReq.ContentType = "text/html";
    
    Muss das request noch abgeschickt werden, wenn ja, wie?

    Natürlich "muss" dass php skript ausgeführt werden.( Wie es zu einem webrequest eben gehört).

     

    michael

    Mittwoch, 20. Oktober 2010 14:23

Antworten

Alle Antworten

  • Hallo Michael,

    Hier ein einfaches Beispiel für ein synchrones Request:

    HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://www.foo.de/statistics.php?info=default");
    httpRequest.KeepAlive = false;
    httpRequest.ContentType = "text/html";
    
    try
    {
     using (HttpWebResponse response = (HttpWebResponse)httpRequest.GetResponse())
     {
     if (response.StatusCode == HttpStatusCode.OK)
     {
      using (Stream responseStream = response.GetResponseStream())
      {
      using (StreamReader reader = new StreamReader(responseStream))
      {
    
       var resp = reader.ReadToEnd();
       Console.WriteLine(resp);
      }
      }
     }
     }
    }
    catch (WebException ex)
    {
     Console.Write("Ein Fehler ist aufgetreten. Fehler-Code: " + ((HttpWebResponse)ex.Response).StatusCode);
     using (Stream responseStream = ex.Response.GetResponseStream())
     {
     using (StreamReader reader = new StreamReader(responseStream))
     {
      var resp = reader.ReadToEnd();
      Console.WriteLine(resp);
     }
     }
    }
    
    Console.ReadKey(true);
    
    


    Siehe auch die MSDN-Dokumentation:

    HttpWebRequest-Klasse:
    http://msdn.microsoft.com/de-de/library/system.net.httpwebrequest(v=VS.100).aspx

    HttpWebResponse-Klasse:
    http://msdn.microsoft.com/de-de/library/system.net.httpwebresponse.aspx

    HttpWebResponse.GetResponseStream-Methode:
    http://msdn.microsoft.com/de-de/library/system.net.httpwebresponse.getresponsestream.aspx

    Gruß
    Marcel

    Mittwoch, 20. Oktober 2010 15:07
    Moderator
  • Vielen dank für ihre hilfreiche Demonstration!

    Leider aber, wird das php skript auf dem server nicht ausgeführt.

    Hier mein beispiel:

    Link1: http://michael-jakob.net/products/InfoFileCreator/statistics.php?info=lol

    Dieser link soll aufgerufen werden, sowie das aufgerufene php skript bearbeitet werden. 

    Wichtig ist auch die GET - übergabe, existiert sie nicht, wird das php skript nicht abgearbeitet

    sondern nur [ if isset und if $_GET.. != "" ];

     

    Das php skript addiert nur ein zusätzliches 'a' zu einer datei hinzu, welche sie hier finden können:

    http://michael-jakob.net/products/InfoFileCreator/statistics.plain

     

    ( Rufen sie erst die *.plain datei auf, dann die php datei. Laden sie die plain datei neu, und es sollte ein zusätzliches 'a' hinzugefügt worden sein.

    Beim aufrufen des c# quellcodes war dies leider nicht der fall!)

     

     

    Michael D.

    Mittwoch, 20. Oktober 2010 17:24
  • Hallo Michael,

    Leider aber, wird das php skript auf dem server nicht ausgeführt.

    Das ist allein Sache des Webservers. Wenn der das nicht ausführen will, tut er es nicht.

    Link1: http://michael-jakob.net/products/InfoFileCreator/statistics.php?info=lol

    Dieser link soll aufgerufen werden, sowie das aufgerufene php skript bearbeitet werden. 

    Wichtig ist auch die GET - übergabe, existiert sie nicht, wird das php skript nicht abgearbeitet

    Dein komisches Konstrukt beim Aufruf der o.g. URL dann ein Frameset rauszuschmeißen, dass dann wiederum als Frame SRC eine andere URL aufruft, funktioniert so nicht. Ein Browser kann mit sowas umgehen, was anderes nicht, wenn es nix mit Frames anzufangen weiß.

    Korrigier also bitte erst mal dein Zeugs, so dass man das sauber aufrufen kann.

    Ruft man nämlich die eigentliche Zielseite:

      http://5394374.de.strato-hosting.eu/michael/products/InfoFileCreator/statistics.php?info=lol

    auf, klappt das auch.



    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert poitroae Mittwoch, 20. Oktober 2010 17:49
    Mittwoch, 20. Oktober 2010 17:40
    Moderator
  • Stimmt, du hast vollkommen recht.

    Die domain ist "eigentlich" nur eine "subdomain", die sich mit der "hauptdomain" den webspace teilt.

    Das problem hatte ich vor langer zeit schon einmal.

    Gut. Funktioniert, danke :D

    Mittwoch, 20. Oktober 2010 17:49
  • Gut. Funktioniert, danke :D

    Das freut mich. Könntest Du Marcel's Posting auch noch als Antwort markieren? Dort steht der wesentliche Teil der Hilfestellung :)

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 20. Oktober 2010 17:58
    Moderator
  • Hallo Michael,

    HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://5394374.de.strato-hosting.eu/michael/products/InfoFileCreator/statistics.php?info=lol");
    httpRequest.Method = "GET";
    

    Bei weiteren Fragen, bitte neuen Thread beginnen. LOL.

    Gruß
    Marcel

    Mittwoch, 20. Oktober 2010 18:08
    Moderator