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
REST Api über C# Programm ansprechen
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

REST Api über C# Programm ansprechen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16234

beantworten | zitieren | melden

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 ;-)
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

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

        }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CarnifeX am .
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3062
Herkunft: Thüringen

beantworten | zitieren | melden

Zitat von CarnifeX

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)
private Nachricht | Beiträge des Benutzers