首页 > 解决方案 > WebApi 不接受 RestSharp AddJsonBody

问题描述

我有一个 WebApi 端点,我可以用 curl ok 调用:

curl -X POST "https://endpoint/SendPin?email=john@smith.com" -H  "accept: application/json"

WebAPI 看起来像这样:

    [HttpPost]
    [Route("SendPin")]
    public async Task<bool> SendPin([Required] [EmailAddress] string email)
    {
        ....
    }

问题:当我使用 RestSharp 调用服务器时,服务器返回一个 BadRequest 消息“需要电子邮件”???

    var request = new RestRequest("SendCode");
    request.AddJsonBody(new { Email = "john@smith.com"});
    RestClient client = new RestClient(TheUrl);
    var response = await client .ExecutePostTaskAsync<bool>(request );

看来 RestSharp 没有作为参数发送到 url?

标签: asp.net-web-apirestsharp

解决方案


因为参数是简单类型,所以我需要像他这样称呼它:

request.AddParameter("email", credential.Email, ParameterType.QueryString);

推荐阅读