阅读New Relic json消息

时间:2014-01-30 09:32:19

标签: c# json asp.net-mvc-4 newrelic

我对新遗物的申请很少。当我输入我的api密钥并点击SEND REQUEST时,我会以json格式得到我的回复。

curl -X GET 'https://api.newrelic.com/v2/applications.json' \ -H 'X-Api-Key:<api key>' -i

这是请求的内容。我不知道上面的代码是什么。好吧,我需要在C#中读取返回的json消息,然后可以反序列化json消息。

我试过这个

 public ActionResult Index()
    {
        WebRequest wr = WebRequest.Create("https://api.newrelic.com/v2/applications.json");

        wr.ContentType = "application/json";
        wr.Method = "GET";
        //wr.Headers["X-Parse-REST-API-Key"] = "<my api key>";
        wr.Headers.Add("Authorization", "<my api key>");

        using (WebResponse response = wr.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {
                int x = 10;
            }
        }

但我得到500错误。

1 个答案:

答案 0 :(得分:3)

您的代码非常接近工作。您只需稍微更改请求标头,如下所示(并替换您自己的api密钥)。然后,正如您所说,您将需要反序列化json。我已经测试了这段代码,它返回了相当于curl命令。

    WebRequest wr = WebRequest.Create("https://api.newrelic.com/v2/applications.json");
    wr.ContentType = "application/json";
    wr.Method = "GET";
    wr.Headers.Add("X-Api-Key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

    using (WebResponse response = wr.GetResponse())
    {
        using (Stream stream = response.GetResponseStream())
        {
            byte[] bytes = new Byte[10000];
            int n = stream.Read(bytes, 0, 9999);
            string s = System.Text.Encoding.ASCII.GetString(bytes);
        }
    }

您可能知道,您可以使用我们的api explorer来形成提取您感兴趣的数据所需的http请求。然后您应该能够将请求从api explorer复制到您的c#代码。请参阅此处的api资源管理器文档:https://docs.newrelic.com/docs/features/getting-started-with-new-relics-api-explorer