Nicht Kodieren Parameter in RestSharp
Ich bin mit RestSharp Zugriff auf eine RubyOnRails-API.
Wie Sie vielleicht wissen, RoR mag, wenn die Parameter-Namen werden in der form model_name[property]
. RestSharp, auf der anderen Seite, mag es nicht.
Fiddler sagt, ich senden diese an den server :
user%5Bemail%5D=user%40email.com&user%5Bpassword%5D=test
Sieht es aus wie R# kodiert sowohl die Parameter und Werte, wenn es sendet die Daten (im Gegensatz zu LOCKE, die aussieht wie es kodiert selektiv).
Während das ist in Ordnung, die meisten der Zeit, die ich denke, in diesem speziellen Fall macht es die API-Rückgabe 401, weil es nicht zu verstehen, die Parameter.
Ist es möglich zu Fragen, R#, nicht codieren der die Anfrage-Parameter ?
Danke !
Bearbeiten
Ok, in der R# Quellen, fand ich die Methode RestClient.EncodeParameters, so wie es aussieht die parameter der name ist immer codiert. Ich denke, ich werde eine Gabel es 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das wurde schon beantwortet, aber ich wollte noch hinzufügen, dass diese Antwort, da es für mich funktionierte. Es ist ein (wenn auch hacky -) Lösung für dieses. Bauen Sie Ihren eigenen uri für Parameter, die sollte nicht kodiert werden.
In der RestSharp Quellen Fand ich heraus, dass die Parameter sind immer codiert (sowohl der name als auch der Wert), so dass ich denke, dass ich die Gabel, wenn ich wollen, fügen Sie einen zusätzlichen parameter.
Seit RestSharp version 106.4.0 können Sie einfach
ParameterType.QueryStringWithoutEncode
imrequest.AddParameter()
Funktion:Finden Sie diese PR, die von der Projekt-Website:
https://github.com/restsharp/RestSharp/pull/1157
Jedoch, soweit ich sagen kann, es ist noch nicht in ein release auf NuGet.
Update: wahrscheinlich funktioniert nicht in den meisten Fällen aus den Kommentaren.
Fand ich eine interessante Lösung... Nur Dekodieren der Parameter, die Sie übergeben möchten und restsharp codieren, zurück zu dem, was es sein sollte. Ich habe zum Beispiel einen api-Schlüssel, die verwendet %7 in es und RestSharper weiter verschlüsselt es. Ich dekodiert den api-Schlüssel und verabschiedet, die in RestSharp und es scheint zu funktionieren!