无法调用Azure Rest API通过客户端的一次Rest调用来获取两个VM指标

时间:2018-10-18 22:20:43

标签: c# rest api azure http

我必须获取两个VM指标并将其显示在控制台上。我只想从客户端打个电话。以下是我正在尝试实现的代码。但这没有用。请帮助我,什么改变将使这项工作

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

using System.Web.Script.Serialization;

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Newtonsoft.Json;

namespace AzureMonitorConsole_Test
{
    class Program
    {
        string tenantId;
        string token;
        public static void Main(string[] args)
        {
            var pg = new Program();
            string URI = "https://management.azure.com/providers/microsoft.insights/metricDefinitions?resourceUri=/subscriptions/d849b9f5-7a60-40fc-acb6-81d1955aa423/resourceGroups/Test_G/providers/Microsoft.Network/networkInterfaces/helloazuretest215,/subscriptions/d849b9f5-7a60-40fc-acb6-81d1955aa423/resourceGroups/Test_G/providers/Microsoft.Compute/virtualMachines/MetricsTestVM";
            string output = pg.doGET(URI, pg.token);
            Console.WriteLine(output);
            Console.ReadLine();
        }
        private string doGET(string URI, String token)
        {
            Uri uri1 = new Uri(String.Format(URI));
            // Create the request, Bearer token is something that I hardcoded for now by getting from Azure Metrics Rest API 

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri1);
            httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8zM2Q1ZGUxNy04ZmZmLTQxNTAtYjkzYy1mYmVjMDc4YzAyYjYvIiwiaWF0IjoxNTM5MzY1OTE1LCJuYmYiOjE1MzkzNjU5MTUsImV4cCI6MTUzOTM2OTgxNSwiYWNyIjoiMSIsImFpbyI6IkFTUUEyLzhKQUFBQWlUVXRDNGVLeVh6akdjOU9HdnlpaytnYjVCSFAxd1BDM1FPYjZ2dnVVdEE9IiwiYWx0c2VjaWQiOiIxOmxpdmUuY29tOjAwMDM0MDAxOURGMjIwRjciLCJhbXIiOlsicHdkIl0sImFwcGlkIjoiN2Y1OWE3NzMtMmVhZi00MjljLWEwNTktNTBmYzViYjI4YjQ0IiwiYXBwaWRhY3IiOiIyIiwiZV9leHAiOjI2MjgwMCwiZW1haWwiOiJzYXJhbi5ndW5uYW1AZ21haWwuY29tIiwiZmFtaWx5X25hbWUiOiJHdW5uYW0iLCJnaXZlbl9uYW1lIjoiR293dGhhbSBTYXJhbiIsImdyb3VwcyI6WyI0M2FlMDJiMi1hMDgxLTRmMzYtYTdmZS01NWNhNzM5YzkxMzAiXSwiaWRwIjoibGl2ZS5jb20iLCJpcGFkZHIiOiI5Ni44NS4xOTUuMTYzIiwibmFtZSI6Ikdvd3RoYW0gU2FyYW4gR3VubmFtIiwib2lkIjoiYTk4NzkyZjgtYmI0Ni00MTk3LWEzMWUtYWEyYjhhYjkwZjhiIiwicHVpZCI6IjEwMDNCRkZEQUUxOTk5NDIiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJtSzNsLVk0NDlDZmdLWkZjWUlWUmZzR2FTU2pZRnl4d0Q0blJ3RTRDdFdBIiwidGlkIjoiMzNkNWRlMTctOGZmZi00MTUwLWI5M2MtZmJlYzA3OGMwMmI2IiwidW5pcXVlX25hbWUiOiJsaXZlLmNvbSNzYXJhbi5ndW5uYW1AZ21haWwuY29tIiwidXRpIjoiaWVVeTJ3Q25Na1NnZ09GU2YwU0hBQSIsInZlciI6IjEuMCIsIndpZHMiOlsiNjJlOTAzOTQtNjlmNS00MjM3LTkxOTAtMDEyMTc3MTQ1ZTEwIl19.o7C7AELLZHDV1f9nmoL1dyx6ayCSCt3xrUDMR8RlwswhVKYcA1KFXavfxIGXWkatrSZlhQw3hmDuzvUoLKFnQwAi5pB5BT2JPM4SOTTH4JKSKDcb7YU5FyoKh7OX2fNPa5Tsk2rYgHgxF-4PWU5_pMbUhTd7d_Xm2ojM8WnIR-7Xiuc6x54JVSf2oMRr0lF6ZIqWVaCKJUe8TPjfnSF_b4a_DFwTJITRus4RCZVnEOXfEcxZMfE3NPMHEl7Q1oP2F0cXiDbrg6_qbVpHnE_AOFR1MHpjtcEl6tbiDMwfKgjplz8Pc3shKneb38be8dFsRe6_-Kg-bBJRHKJLpKrOcA");
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Method = "GET";
            // Get the response
            HttpWebResponse httpResponse = null;
            try
            {
                httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error from : " + uri1 + ": " + ex.Message,
                                "HttpWebResponse exception");
                return null;
            }
            string result = null;
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                result = streamReader.ReadToEnd();
            }
            return result;
        }
    }
}

0 个答案:

没有答案