WebApi не принимает RestSharp AddJsonBody

У меня есть конечная точка WebApi, которую я могу вызвать с помощью curl:

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)
    {
        ....
    }

Проблема: сервер возвращает сообщение BadRequest "Требуется электронная почта", когда я вызываю его с помощью RestSharp???

    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 в качестве параметра??

2 ответа

Поскольку параметр является простым типом, мне нужно назвать его как его:

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

Вы добавляете письмо в тело запроса с request.AddJsonBody() метод. Вместо этого добавьте его в URL-адрес запроса в виде строки запроса, как вы сделали в запросе curl

var request = new RestRequest("SendPin"+ "?email=john@smith.com");
RestClient client = new RestClient(TheUrl);
var response = await client.ExecutePostTaskAsync<bool>(request);
Другие вопросы по тегам