Hallöle zusammen,
ich erstelle einen Client mit RestSharp und versuche mich an der API an einem Hausinternen Dienst anzumelden.(API)
Per Postman funktioniert alles.
Nun möchte ich das in mein C# WindowsForms Programm einbauen.
Das einfachste ist, dass ich den Code 1:1 kopiere und paste.
Sollte man meinen.
Authentifizierung geschieht über Bearer Username+Passwort.
Der Dienst meldet immer, dass ich "UNAUTHORIZED" bin.
So sieht das aus, original aus Postman:
var client = new RestClient("URL-des-Dienstes");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer USername Pass Word mit Leerzeichen");
var body = @"";
request.AddParameter("text/plain", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Anstatt request.Addheader habe ich folgendes jeweils ausprobiert:
// client.Authenticator = new AuthenticationHeaderValue("Username", "Pass Word mit Leerzeichen");
// client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator("Username Pass Word mit Leerzeichen", "Bearer");
// request.AddParameter("Authorization", "Bearer USername Pass Word mit Leerzeichen",ParameterType.HttpHeader);
// client.AddDefaultHeader("Authorization", $"Bearer USername Pass Word mit Leerzeichen");
Nichts funktioniert, immer bekomme ich Unauthorized.
Das Passwort ist so wie es hier ist - mit Leerzeichen, also ein Satz.
Könnte es daran liegen?
Was macht Postman anders?
Vielleicht hat jemand eine Idee dazu....
Habe die Lösung gefunden:
sending-oauth-token-works-in-postman-but-does-not-work-in-restsharp
Tipp: verwende Refit.
Damit sparst Dir 90% des Codes, hast niemals Dopplungen und hast eine implizite statt explizite Funktionsweise.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo schuppsl,
dein eigentlicher Link ist falsch (zeigt auf dein eigenes Thema 😉.
Lag am falsch verwendeten BBCode, der dann nicht gerendert wird.
Habs korrigiet.