Anforderungen: Wenn im Parameter ein Enum-Typ vorhanden ist, wird die Schnittstelle einen "400 Bad Request"-Fehler zurückgeben, da Refit das Enum im Objekt standardmäßig in eine Zeichenkette umwandelt und die Schnittstelle die Zeichenkette nicht in einen Enum-Fehler umwandeln kann, wie folgt:
{ "typ": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "Titel": "Ein oder mehrere Validierungsfehler traten auf." "Status": 400, "traceId": "00-3aef79a91ce9c411883953c9aaccb48a-68917b547ba8a2e5-00", "errors": { "Anforderung": [ "Das erforderliche Feld ist erforderlich." ], "$.languagePermissions": [ "Der JSON-Wert konnte nicht in LanguagePermissionsEnum umgewandelt werden. Pfad: $.languagePermissions | Zeilennummer: 0 | BytePositionInLine: 145." ] }
}
Die offizielle Erklärung ist, dass der Grund, Enums standardmäßig in Strings umzuwandeln, darin liegt, dassSteigere die Lesbarkeit und erleichtert das Lesen von Parameterinhaltsinformationen。 Referenz:Der Hyperlink-Login ist sichtbar.
Das Standardverhalten ist, das Enum in eine Zeichenkette zu serialisieren, was Sie ändern können, indem Sie dem Serializer Ihre eigenen Einstellungen geben:Der Hyperlink-Login ist sichtbar.
Deshalb geben wir die benutzerdefinierten Refit-Einstellungen durch und verwenden nicht die Standardeinstellungen, löschen sieJsonStringEnumConverterDer Konverter ist in Ordnung, der Code lautet wie folgt:
Lösung:Der Hyperlink-Login ist sichtbar. (Ende)
|