GoToWebinar - Запрос не в ожидаемом формате - RestSharp
Аналогично этому сообщению на форуме: https://developer.citrixonline.com/forum/request-not-expected-format
Однако он на самом деле не объяснил, что он нашел, было неправильно с его кодом.
Я использую RestSharp, чтобы делать вызовы API. Я смог заставить его работать отлично, вытащив список предстоящих вебинаров, однако, когда я пытаюсь зарегистрировать участника, я получаю запрос 400/ Запрос не в ожидаемом формате.
Следуя этой документации https://developer.citrixonline.com/api/gotowebinar-rest-api/apimethod/create-registrant, вот мой код:
var client = new RestClient(string.Format("https://api.citrixonline.com/G2W/rest/organizers/{0}/webinars/{1}/registrants", "300000000000xxxxxx", btn.CommandArgument));
var request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Accept", "application/json");
request.AddHeader("Accept", "application/vnd.citrix.g2wapi-v1.1+json");
request.AddHeader("Authorization", "OAuth oauth_token=" + System.Configuration.ConfigurationManager.AppSettings["GoToWebinar"]);
request.AddParameter("firstName", LoggedInUser.FirstName);
request.AddParameter("lastName", LoggedInUser.LastName);
request.AddParameter("email", LoggedInUser.Email);
var response = client.Execute(request);
var statusCode = response.StatusCode;
Любое понимание того, как я могу понять, почему я продолжаю получать эту ошибку?
Спасибо!
1 ответ
Вместо использования AddParamter (который добавляет параметры ключа / значения в тело запроса), вместо этого вам нужно написать JSON:
request.DataFormat = DataFormat.Json;
request.AddBody(new {
firstName = LoggedInUser.FirstName,
lastName = LoggedInUser.LastName,
email = LoggedInUser.Email
});
Вам также нужно очистить обработчики (которые автоматически устанавливают заголовок Accept), если вы хотите указать их напрямую:
client.ClearHandlers();