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);