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
[Snippet] Http Get & Post
Xzelsius
myCSharp.de - Member



Dabei seit:
Beiträge: 99
Herkunft: Schweiz

Themenstarter:

[Snippet] Http Get & Post

beantworten | zitieren | melden

Beschreibung:

Mit diesen beiden Funktionen könnt ihr Get & Post Request an einen Webserver / URL ausführen!
Sie haben evtl. noch Verbesserungspotential doch sie hauen beide hin!

Wenn jemand einen Fehler entdeckt bitte melden! Nehme auch gerne Kritik entgegen!



public static string Post(string url, Dictionary<string, string> args)
{
   HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

   ASCIIEncoding encoding = new ASCIIEncoding();

   string postData = string.Empty;
   foreach (KeyValuePair<string, string> valuePair in args) {
      if (postData != string.Empty) postData += "&";

      postData += string.Format("{0}={1}", valuePair.Key, valuePair.Value);
   }
   byte[] data = encoding.GetBytes(postData);

   webRequest.Method = "POST";
   webRequest.ContentType = "application/x-www-form-urlencoded";
   webRequest.ContentLength = data.Length;

   Stream stream = webRequest.GetRequestStream();
   stream.Write(data, 0, data.Length);
   stream.Close();

   WebResponse webResponse = webRequest.GetResponse();
   StreamReader streamReader = new StreamReader(webResponse.GetResponseStream());

   string responseFromServer = streamReader.ReadToEnd();

   streamReader.Close();
   webResponse.Close();

   return responseFromServer;
}

public static string Get(string url, Dictionary<string, string> args)
{
   string parameters = string.Empty;
   foreach (KeyValuePair<string, string> valuePair in args) {
      if (parameters != string.Empty) parameters += "&";

      parameters += string.Format("{0}={1}", valuePair.Key, valuePair.Value);
   }

   url += string.Format("?{0}", parameters);

   HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

   WebResponse webResponse = webRequest.GetResponse();
   StreamReader streamReader = new StreamReader(webResponse.GetResponseStream());

   string responseFromServer = streamReader.ReadToEnd();

   streamReader.Close();
   webResponse.Close();

   return responseFromServer;
}

Schlagwörter: Http, Get, Post, Request, Web
public Knowledge Learn_CSharp();
private Nachricht | Beiträge des Benutzers
dN!3L
myCSharp.de - Experte

Avatar #avatar-2985.png


Dabei seit:
Beiträge: 3138

beantworten | zitieren | melden

Du solltest unbedingt die Parameter beim Einbauen in die URL nochmal in die HttpServerUtility.UrlEncode-Methode (System.Web) werfen. Falls die Werte irgendwelche Sonderzeichen enthalten.
Und du könntest/solltest - wo möglich - die using-Anweisung verwenden.

Ansonsten: Guck mal in WebClient mit HTTP-POST- und Cookie-Unterstützung :)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von dN!3L am .
private Nachricht | Beiträge des Benutzers
Xzelsius
myCSharp.de - Member



Dabei seit:
Beiträge: 99
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

8o

Danke! Ich werde mir dies mal richtig durchschauen!

Ich habe es nur für einen einfachen Request gebraucht. Hab auf einem Webserver eine PHP-Klasse welche mir die Posts/Gets richtig auswertet.

Werde mal schauen was ich bei meinen KLEINEN Funktionen selbst verbessern kann!

Aber sicherlich danke für die Tipps!
public Knowledge Learn_CSharp();
private Nachricht | Beiträge des Benutzers
frisch
myCSharp.de - Member

Avatar #avatar-1724.gif


Dabei seit:
Beiträge: 2118
Herkunft: Coburg / Oberfranken

beantworten | zitieren | melden

OMG ich versuch schon die ganze Zeit einen Post zu machen und bekomm immer nen Fehler. Mit deinem Snippet klappts, danke. Werde den Code jetzt analysieren.
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
private Nachricht | Beiträge des Benutzers