2014-01-30 116 views
0

我几乎没有附加到新文物的应用程序。当我输入我的api键并点击发送请求时,我以json格式得到我的回复。阅读New Relic 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错误。

+0

请解释你正在尝试做什么。你的问题应该更具体一些......如果我们不知道你想要做什么以及它为什么失败,那么不可能理解你的问题。 – JotaBe

+0

@JotaBe我得到了一个卷曲命令。我如何将其转换为C#代码? curl命令写在上面和下面是我的C#代码,我试过了 –

回答

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探险家,形成以提取您感兴趣的数据所需要的HTTP请求。然后,你应该能够从API浏览器中的请求拷贝到你的C#代码。请参阅此处的api资源管理器文档:https://docs.newrelic.com/docs/features/getting-started-with-new-relics-api-explorer