Отслеживание событий Revulytics возвращает неверный запрос
Я тестирую API отчетов Revulytics и пытаюсь сгенерировать расширенный отчет по отслеживанию событий в соответствии с http://devzone.revulytics.com/docs/API/event-tracking-advanced-reports.html. Я использую C# и класс WebClient для отправки HTTP-запроса (и Newtonsoft для анализа и форматирования JSON). Однако, хотя мой JSON отформатирован правильно, а клиент правильно настроен, я получаю необработанное исключение. Пример кода ниже:
RuiAdvancedRequest advancedRequest = new RuiAdvancedRequest();
DateTime startDate = DateTime.Now.AddDays(-180);
advancedRequest.user = textUser.Text;
advancedRequest.sessionId = authResponseObj.sessionId;
advancedRequest.productId = Convert.ToInt64(textProductId.Text);
advancedRequest.startDate = startDate.ToString("yyyy-MM-dd");
advancedRequest.stopDate = DateTime.Now.Date.ToString("yyyy-MM-dd");
advancedRequest.events = list;
string serializedRequest = JsonConvert.SerializeObject(advancedRequest);
string reportResult = client.UploadString(featureuUsageURL, "POST", serializedRequest);
Последняя строка завершается с ошибкой: необработанное исключение типа "System.Net.WebException" произошло в System.dll Дополнительная информация: удаленный сервер возвратил ошибку: (400) неверный запрос. Есть ли способ получить больше информации об ошибках с сервера Revulytics?
1 ответ
Попробуйте обработать исключение и посмотрите поток ответов об ошибках. Я получил похожую ошибку: хотя JSON был правильно отформатирован, если значения параметров не в порядке с точки зрения сервера, он по-прежнему возвращает эту ошибку - то же самое, как если бы JSON не был должным образом отформатирован.
try
{
reportResult = client.UploadString(featureuUsageURL, "POST", serializedRequest);
}
catch (WebException error)
{
string responseText;
var responseStream = error.Response?.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
responseText = reader.ReadToEnd();
MessageBox.Show(responseText);
}
Надеюсь это поможет