我正在使用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/