Laden...

[Snippet] Http Get & Post

Erstellt von Xzelsius vor 13 Jahren Letzter Beitrag vor 12 Jahren 8.277 Views
X
Xzelsius Themenstarter:in
92 Beiträge seit 2008
vor 13 Jahren
[Snippet] Http Get & Post

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();

2.891 Beiträge seit 2004
vor 13 Jahren

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 😃

X
Xzelsius Themenstarter:in
92 Beiträge seit 2008
vor 13 Jahren

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();

2.082 Beiträge seit 2005
vor 12 Jahren

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