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
Erste Schritte mit RestSharp. Wie kann ich auf die Response Daten zugreifen?
diana
myCSharp.de - Member



Dabei seit:
Beiträge: 593
Herkunft: Sachsen

Themenstarter:

Erste Schritte mit RestSharp. Wie kann ich auf die Response Daten zugreifen?

beantworten | zitieren | melden

Hallo,

momentan habe ich mir diesen Code zusammengebaut, um auf einen anderen Rest-Service zuzugreifen:

 client = new RestSharp.RestClient("...");
                client.Proxy = proxy;

                var request = new RestSharp.RestRequest("/test",RestSharp.Method.POST);
                
                request.AddHeader("Accept", "text/plain");
                //request.AddHeader("Content-Type", "application/json");
                request.AddHeader("Content-Type", "text/plain");

                request.AddParameter("username", "username", RestSharp.ParameterType.RequestBody);
                request.AddParameter("password", "password", 
                //request.AddParameter("application/json", "accessToken", RestSharp.ParameterType.RequestBody);
        
                var response = client.Execute(request);

Leider, bekomme ich nur folgenden Fehler: Unsupported Media Type

Und dann erwarte ich im response Body den Parameter accessToken, wie kann ich auf diesen zugreifen?

Hat vielleicht jemand hier mehr Erfahrung mit RestSharp und kann mir helfen?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von diana am .
Gruß Diana
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15536
Herkunft: BW

beantworten | zitieren | melden

Schau Dir Refit an; das ist ein RestSharp nur in einfach und moderner.https://github.com/reactiveui/refit - generiert Dir den Client automatisch anhand eines Interfaces.

Beispiele sind dutzende auf der Seite.
private Nachricht | Beiträge des Benutzers
diana
myCSharp.de - Member



Dabei seit:
Beiträge: 593
Herkunft: Sachsen

Themenstarter:

beantworten | zitieren | melden

Bräuchte schon mal eine Hilfe in RestSharp. Blicke da schon kaum durch...

Ich hab doch hier schon fast alles, nur der Aufruf der Methode ist noch nicht korrekt.
Gruß Diana
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15536
Herkunft: BW

beantworten | zitieren | melden

Wie gesagt; Refit ist einfacher - und Du sprichst davon, dass Dir RestSharp zu kompliziert ist (warum auch immer).
Warum machste Dir dann selbst das Leben schwer und verwendest nicht das einfachere(und nebenbei das modernere)?. Aber wenn Du nicht magst... Deine Sache. Deine Zeit.


RestSharp ist leider nicht die stabilste Lib (auch deswegen der Hinweis auf Refit).
Daher schau in Fiddler nach, ob Deine Header wirklich mitgeschickt werden. Gab schon zig Bugs dazu in der Vergangenheit.
Ich glaube aber einfach, dass Dein AddParameter murks ist und nicht das abgeschickt wird, was Deine API erwartet.

var request = new RestRequest
{
    Resource = "/test",
    RequestFormat = DataFormat.Json,
    Method = Method.POST
};
request.AddBody(new Auth { Username = "username", Password ="password" });
verwende ich in einer meiner Libs und das geht.
Zitat
Und dann erwarte ich im response Body den Parameter accessToken, wie kann ich auf diesen zugreifen?
Kann das sein, dass Du ein OpenId / OAuth Request von Hand nachbauen willst? Warum?
Warum nutzt Du keine entsprechende SDK dafür, die es tausendfach gibt?
Du musst ja auch den Token immer wieder mitgeben (was Dir übrigens auch Refit automatisch macht, RestSharp nicht).
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3955

beantworten | zitieren | melden

Du hast anscheinend dieselben Fehler wie in Unsupported media type using RestSharp library und How to solve UnsupportedMediatType when using RestSharp and OAuth2 gemacht, also falschen Header-Typ ("application/json" sollte es sein) und du darfst den Body dann nicht wieder mit ParameterType.RequestBody überschreiben.
private Nachricht | Beiträge des Benutzers
diana
myCSharp.de - Member



Dabei seit:
Beiträge: 593
Herkunft: Sachsen

Themenstarter:

beantworten | zitieren | melden

Ich danke euch erstmal und schaue mir das mal näher an.
Gruß Diana
private Nachricht | Beiträge des Benutzers
diana
myCSharp.de - Member



Dabei seit:
Beiträge: 593
Herkunft: Sachsen

Themenstarter:

beantworten | zitieren | melden

Nochmal vielen Dank an eure Tipps.

@Abt: Die Parameter-Übergabe ist die Lösung gewesen. Bin eben total am Anfang des Themas.

GELÖST!

Wenn ich so langsam verstehe, was zu tun ist, dann kann ich nach Alternativen von RestSharp suchen.
Gruß Diana
private Nachricht | Beiträge des Benutzers