Ich integriere mich mit der Discourse API unter Verwendung von RestSharp und stoße auf ein Problem mit Benutzernamen, die Nicht-ASCII-Zeichen enthalten (insbesondere deutsche Umlaute). Ich muss einen Benutzer mit dem Benutzernamen foö (enthält ö) impersonieren.
Wenn ich den rohen Benutzernamen im Header Api-Username sende, erhalte ich: Request headers must contain only ASCII characters (Anforderungs-Header dürfen nur ASCII-Zeichen enthalten)
Wenn ich den Benutzernamen URL-kodiert sende (Uri.EscapeDataString("foö") → fo%C3%B), schlägt die Authentifizierung fehl mit: {"errors":["Du bist nicht berechtigt, die angeforderte Ressource anzuzeigen. Der API-Benutzername oder -Schlüssel ist ungültig."],"error_type":"invalid_access"} (Zugriff verweigert / Benutzer existiert nicht)
Ich verwende einen API-Schlüssel mit Administratorrechten. Endpunkt: POST /posts.json zum Erstellen von Themen im Namen von Benutzern.
Was ist der korrekte Weg, Benutzernamen mit Nicht-ASCII-Zeichen im Header Api-Username zu übergeben? Soll ich:
Eine andere Kodierungsmethode verwenden?
Stattdessen eine Benutzer-ID verwenden (wenn ja, welcher Header-Name)?