【发布时间】:2019-07-30 10:20:48
【问题描述】:
如何使用RestSharp 对请求正文进行GET 查询(我正在使用带有.NET Core 2.2 的RestSharp v. 106.6.10)。我可以使用WebClient/Postman 等来做到这一点。没问题。
这里的代码失败了{["A non-empty request body is required."]}。
var client = new RestClient("BaseUri");
var request = new RestRequest("URL", Method.GET);
request.AddJsonBody(Body);
client.Execute(request); // {["A non-empty request body is required."]}
这代表了一个valid 用例,如果不支持就可惜了。
更新:使用带有正文的 GET 请求的动机是利用具有复杂参数的 get 请求,这些参数不能很好地编码为查询字符串。我知道人们将他们的 json 序列化并将它们放入查询字符串中,但我宁愿将其放入请求正文中,因为毕竟这是一种允许的用法。
【问题讨论】:
-
这在技术上可能是允许的,但是 - 这不是完全正常的用法;有些工具不喜欢它并不让我感到惊讶;但是:你试过
HttpClient吗? -
@IvMisticos - 不起作用,出现同样的错误。
-
@MarcGravell 我已经尝试过 WebClient,但似乎也不喜欢它,明确表示 GET 不允许有正文。
-
@MarcGravell ProtocolViolationException:无法发送具有此动词类型的内容主体。是我从 WebClient 得到的。
标签: c# .net rest .net-core restsharp