Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Internet einbinden
cuco
myCSharp.de - Member



Dabei seit:
Beiträge: 11
Herkunft: Hannover

Themenstarter:

Internet einbinden

beantworten | zitieren | melden

Hi

Ich habe bisher in ein paar einfachen Programmiersprachen ein wenig programmiert oder nennen wir es eher rumgespielt...

Jetzt würd ich trotzdem gern mich in C# versuchen :-)

Hab mir dafür erstmal ein gutes Buch von Herbert Schildt gekauft und ein wenig getestet, nun soll es aber an ähm naja "größere" :-) Projekte gehen. Jetzt würde ich gerne das Internet in mein Projekt einbinden.

Das Programm soll auf bestimmte Texte auf Internetseiten reagieren, Links aufrufen, Formulare ausfüllen und auf Buttons klicken.

Was kann ich davon machen? :-)

Fangen wir am Besten erstmal nur langsam an, also Stufe ein: Mein Programm soll erstmal nur ein paar Links aufrufen. Also wo der Quelltext landet ist mir im ersten Schritt auch mal egal, hauptsache das Programm schickt die Anforderung an den Server, eine bestimmte Seite aurzurufen.

Könnt ihr auch solch Einsteigern (nennen wir es mal Härtefall :-) ) wie mir helfen?

Ciao Tobias

P.S.: Oder gehört das in Web un Netzwerktechnologien?
private Nachricht | Beiträge des Benutzers
SGT_BOB
myCSharp.de - Member



Dabei seit:
Beiträge: 125
Herkunft: Aachen

beantworten | zitieren | melden

Hallo cuco.

Erst mal kann man (fast) alles mit C# machen.

Zu deiner Frage bezüglich Links aufrufen etc. wäre eine Angabe der Framework Version ganz hilfreich, da es beim .Net Framework 2.0 einige Neuerungen und Verbesserungen gibt.

Solltest du mit der 1.1er Version arbeiten, dann schau mal in der SDK-Doku nach HttpWebRequest und HttpWebResponse. Es ist schwierig zu sagen wonach du suchen sollst, wenn du nicht genau beschreibst wast du vorhast.

Für mich hört es sich erstmal danach an als ob du z.B. eine Webseite aufrufen und deren Quellcode nach bestimmten Begriffen bzw. Texten parsen möchtest.

Zu deinem letztem Punkt: Natürlich wird hier auch "Härtefällen" geholfen, jeder von uns ist oder war ein solcher "Härtefall".

Mfg SGT_BOB
*************************
Ich bin root, ich darf das...
root>_
*************************
private Nachricht | Beiträge des Benutzers
SGT_BOB
myCSharp.de - Member



Dabei seit:
Beiträge: 125
Herkunft: Aachen

beantworten | zitieren | melden

Ich hab mal einen Beispiel-Code aus der SDK-Doku kopiert. Das sollte schon ein Grundstein sein, für das was du suchst. (Vorausgesetzt ich hab's richtig verstanden 8) )

 
using System;
using System.IO;
using System.Net;
using System.Text;


class HttpWebRequest_Connection
{
  static void Main()
  {    
    try  
    {

      // Create a new HttpWebRequest object.Make sure that 
      // a default proxy is set if you are behind a fure wall.
      HttpWebRequest myHttpWebRequest1 =
        (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
     
      myHttpWebRequest1.KeepAlive=false;
      // Assign the response object of HttpWebRequest to a HttpWebResponse variable.
      HttpWebResponse myHttpWebResponse1 = 
        (HttpWebResponse)myHttpWebRequest1.GetResponse();

      Console.WriteLine("\nThe HTTP request Headers for the first request are: \n{0}",myHttpWebRequest1.Headers);
      Console.WriteLine("Press Enter Key to Continue..........");
      Console.Read();

      Stream streamResponse=myHttpWebResponse1.GetResponseStream();
      StreamReader streamRead = new StreamReader( streamResponse );
      Char[] readBuff = new Char[256];
      int count = streamRead.Read( readBuff, 0, 256 );
      Console.WriteLine("The contents of the Html page are.......\n");  
      while (count > 0) 
      {
        String outputData = new String(readBuff, 0, count);
        Console.Write(outputData);
        count = streamRead.Read(readBuff, 0, 256);
      }
      Console.WriteLine();
      // Close the Stream object.
      streamResponse.Close();
      streamRead.Close();
      // Release the resources held by response object.
      myHttpWebResponse1.Close();
      // Create a new HttpWebRequest object for the specified Uri.
      HttpWebRequest myHttpWebRequest2 = 
        (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
      myHttpWebRequest2.Connection="Close";
      // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
      HttpWebResponse myHttpWebResponse2 = 
        (HttpWebResponse)myHttpWebRequest2.GetResponse();
      // Release the resources held by response object.
      myHttpWebResponse2.Close();
      Console.WriteLine("\nThe Http RequestHeaders are \n{0}",myHttpWebRequest2.Headers);
      Console.WriteLine("\nPress 'Enter' Key to Continue.........");
      Console.Read();      
    }
    catch(ArgumentException e)
    {
      Console.WriteLine("\nThe second HttpWebRequest object has raised an Argument Exception as 'Connection' Property is set to 'Close'");
      Console.WriteLine("\n{0}",e.Message);
    }
    catch(WebException e)
    {
      Console.WriteLine("WebException raised!");
      Console.WriteLine("\n{0}",e.Message);
      Console.WriteLine("\n{0}",e.Status);
    } 
    catch(Exception e)
    {
      Console.WriteLine("Exception raised!");
      Console.WriteLine("Source :{0} " , e.Source);
      Console.WriteLine("Message :{0} " , e.Message);
    }
  }
}


Mfg SGT_BOB
*************************
Ich bin root, ich darf das...
root>_
*************************
private Nachricht | Beiträge des Benutzers
Cpt_Future
myCSharp.de - Member



Dabei seit:
Beiträge: 97
Herkunft: Karlsruhe

beantworten | zitieren | melden

Beim Topicnamen mußte ich irgendiwe lachen, vielleicht kannst du ja noch einen Button "Internet herunterladen" oder "Internet löschen" einbauen Ist nicht bös gemeint, gutes Gelingen wünsch ich!
Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf
private Nachricht | Beiträge des Benutzers
cuco
myCSharp.de - Member



Dabei seit:
Beiträge: 11
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

thx, das schau ich mir erstmal an, da hab ich glaub ich schon erstmal genug zu tun ^^
private Nachricht | Beiträge des Benutzers
cuco
myCSharp.de - Member



Dabei seit:
Beiträge: 11
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

so, also meine erste Stufe (Links aufrufen, Quelltexte laden) ist geschafft, ich denke, ich komm zumindestens einigermaßen damit klar. Nun möchte ich in Formularen Felder ausfüllen und auf "Absenden" klicken. So nach dem Motto: Programm geht auf www.mycsharp.de, auf anmelden und loggt sich selbst ein.

Wie mach ich sowas?

Ciao Tobias

P.S.: Danke schon mal!
private Nachricht | Beiträge des Benutzers
Cpt_Future
myCSharp.de - Member



Dabei seit:
Beiträge: 97
Herkunft: Karlsruhe

beantworten | zitieren | melden

Rausfinden ob das Formular per Get oder Post gesendet wird, an welche URL es gesendet wird, die input-Felder ermitteln, deren Werte setzen und eine neue Anfrage an die URL senden, nur diesmal mit gesetzten Werten?
Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo cuco,

was du beschreibst, ist m.E. kein Job für Http(Web)Request, sondern für das WebBrowser-Control von .NET 2.0. Damit kannst du quasi einen Browser per Programm bedienen. Das eigentliche Abschicken des Forumlars u.ä. übernimmt dann das WebBrowser-Control für dich. Ob das dann mit GET oder POST geht, braucht dich dann nicht mehr zu kümmern.

Siehe z.B. Button auf Website druecken?! und ChatBot

herbivore
private Nachricht | Beiträge des Benutzers
cuco
myCSharp.de - Member



Dabei seit:
Beiträge: 11
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

ok, dann schau ich mir das mal an. aber sharpdevelop scheint sich nicht zum arbeiten mit .Net 2.0 überreden zu lassen... Es sagt immer, das .NET 1.1 fehlt! Gibs da nen Trick? Oder muss ich auf andere Software zurückgreifen? Wenn ja, welche?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo cuco,

meines Wissens musst du da auf die nächste Version von SharpDevelop warten, VS 2005 nehmen, oder - wie ich - mit der Kommandozeile arbeiten.

herbivore
private Nachricht | Beiträge des Benutzers