2014-01-30 207 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