我正在使用RestSharp访问RubyOnRails API。
您可能知道,RoR喜欢参数名称采用model_name[property]的形式。另一方面,RestSharp不喜欢它。

Fiddler说我将其发送到服务器:

user%5Bemail%5D=user%40email.com&user%5Bpassword%5D=test

看起来R#在发送数据时会同时对参数和值进行编码(与Curl不同,后者看起来像是对其进行选择性编码)。
尽管我猜大多数时候都很好,但是在这种特殊情况下,由于它不了解参数,它会使API返回401。

是否可以要求R#不对请求的参数进行编码?

谢谢 !

编辑

好的,在R#源代码中,我找到了RestClient.EncodeParameters方法,因此看起来参数的名称始终是编码的。我想我将不得不 fork :(

最佳答案

从RestSharp版本106.4.0开始,您可以在ParameterType.QueryStringWithoutEncode函数中使用request.AddParameter():

        request.AddParameter("user_id", @"45454545%6565%65", ParameterType.QueryStringWithoutEncode);

关于restsharp - 不要在RestSharp中编码参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22098878/

10-13 00:24