Laden...

REST Api über C# Programm ansprechen

Erstellt von CarnifeX vor 8 Jahren Letzter Beitrag vor 8 Jahren 3.836 Views
C
CarnifeX Themenstarter:in
48 Beiträge seit 2015
vor 8 Jahren
REST Api über C# Programm ansprechen

Hallo zusammen,

ich besitze einen kleinen Online-Shop der von einer Firma serverspot gehostet wird.
Sie bieten eine Schnittstelle an über die man die Kunden usw. auslesen kann.

Da ich leider kein Voll-Ausgebildeter Programmierer bin wollte ich fragen ob mir jemand helfen kann.

Ich möchte ein kleines "Mahnprogramm" schreiben. Mein Problem ist ich weiß nicht genau wie ich die Verbindung herbekomme. Also wie ich mir die Kundendaten ziehe kann.

Hier ist die "Dokumention" seitens Provider. Damit kann ich leider nicht viel anfangen da ich nur im c# Universum unterwegs bin 😃

Ich bräuchte eigentlich nur Hilfe dabei wie ich die Verbindung aufbaue (Mich dort authentifiziere, Benutzername und PW ) und mir Daten ziehen kann.

Danke im Voraus.

16.834 Beiträge seit 2008
vor 8 Jahren

Was genau ist nun das Problem.. was hast Du versuchst, wo kommst Du nicht weiter?
REST ist ein Standard. Schon mal angesehen, wie dieser aufgebaut ist? Mal nach C# Bibliotheken dafür gesucht? Gibts wie Sand am Meer.

Mit der Doku selbst können wir auch nicht wirklich was _direkt _anfangen.
Wir müssten genauso schauen, wie die SDK von denen auf PHP Basis funktioniert 😉

C
CarnifeX Themenstarter:in
48 Beiträge seit 2015
vor 8 Jahren

Ich hatte das Problem dass ich nicht wusste wie ich die Schnittstelle anspreche und Daten zurückbekomme. Aber das habe ich mittlerweile gelöst 😃.

Hier der Code für diejenigen die vielleicht das gleiche Problem haben:

public string GetRequest(string URL)
        {
            String username = "API-USERNAME";
            String password = "API-Passwort";
            string result = null;

            HttpWebRequest req = WebRequest.Create(URL) as HttpWebRequest;

            String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
            req.Headers.Add("Authorization", "Basic " + encoded); // Anmeldung 

            using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
            {
                StreamReader reader = new StreamReader(resp.GetResponseStream());
                result = reader.ReadToEnd();
            }
            allData = result;
            return result;
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void btnRequest_Click(object sender, EventArgs e)
        {
            string URL = "https://meineshop/api/rest/v1/";
            lblAusgabe.Text = (GetRequest(URL));

        }
3.003 Beiträge seit 2006
vor 8 Jahren
public string GetRequest(string URL)  
            using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)  
            {  
                StreamReader reader = new StreamReader(resp.GetResponseStream());  
                result = reader.ReadToEnd();  
            }  
  

Bemerkung am Rande:

Alle StreamReader/Reader implementieren IDisposable. Und alles, was IDisposable implementiert, solltest du per using benutzen.


using(var response = request.GetResponse() as HttpWebResponse) //nebenbei, kein check auf null...
using(var reader = new StreamReader(response.GetResponseStream())
{
    result = reader.ReadToEnd();
}

LaTino
Grund: using sorgt dafür, dass IDisposable-Objekte ihre benutzten Ressourcen wieder freigeben (den Stream schließen); auch, wenn es eine Ausnahme gab. "Offene" Resourcen sind eine beliebte Fehlerquelle, die man so von vorn herein vermeidet.

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)