- RestSharp 105.2.3
- WebAPI 2
Так что я простой контроллер WebAPI как таковой:RestSharp вызова мой параметр WebAPI пустым
public class EnettController : ApiController
{
private readonly DebitService _EnettService;
public EnettController()
{
_EnettService = new DebitService();
}
[HttpPost]
public ProcessDirectDebitResponse ProcessDirectDebit([FromBody] ProcessDirectDebitRequest aRequest)
{
}
}
и из моего тестового жгута I позвоните ему со следующим кодом RestSharp:
RestClient client = new RestClient($"http://{txtHost.Text}:{txtPort.Text}");
ProcessDirectDebitRequest dataForRequest = new ProcessDirectDebitRequest
{
AgentId = "James Bond",
DepartureDate = DateTime.Now,
Version = "123"
};
RestRequest request = new RestRequest("api/Enett", Method.POST)
{
RequestFormat = DataFormat.Json
};
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.AddBody(dataForRequest);
IRestResponse<ProcessDirectDebitResponse> response = client.Execute<ProcessDirectDebitResponse>(request);
if (response.StatusCode != HttpStatusCode.OK)
{
MessageBox.Show($"Did not yet a 200 response. Got instead {response.StatusCode}");
}
В моей конечной точке WebAPI нет проблем, но aRequest всегда имеет значение NULL. Так что я упускаю что-то очевидное здесь, я просто не вижу, что это такое. Почему aRequest всегда имеет значение NULL?
Кажется, будет хорошо на первый взгляд. Можно ли проверить загрузку запроса, используя скрипт или аналогичные инструменты? Возможно, вы также можете попробовать 'request.AddJsonBody (dataForRequest);' – Developer
AddJsonBody() не имеет значения. Все еще пытаюсь заставить Скрипача увидеть запрос. – TheEdge
Правильно, не должно иметь значения; просто хочу удостовериться, что при установке Content-Type не было никакой опечатки. Должен получить некоторую информацию, если вы посмотрите на полезную нагрузку и заголовки запроса. – Developer