Revulytics事件跟踪返回错误请求
问题描述:
我正在测试Revulytics报告API,并且正在尝试生成高级事件跟踪报告,按照http://devzone.revulytics.com/docs/API/event-tracking-advanced-reports.html#。 我使用C#和WebClient类来发送HTTP查询(以及用于JSON解析和格式化的Newtonsoft)。不过,虽然我的JSON格式正确,客户端配置正确,但我得到了未处理的异常。代码示例以下:Revulytics事件跟踪返回错误请求
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服务器获取更多错误信息?
答
尝试处理异常并查看错误响应流。我得到了一个类似的错误:虽然JSON格式正确,但如果从服务器的角度来看params的值不正确,它仍会返回此错误 - 这与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);
}
希望这有助于