public static void Main(string[] args)
        {
            Console.WriteLine("Please first input your subscription ID");
            SubscriptionID = Console.ReadLine();

            Console.WriteLine("Please enter the service name you want to hold the VM");
            ServiceName = Console.ReadLine();

            Console.WriteLine("Please enter the Azure management certificate thumbprint:");
            CertificateThumbprint = Console.ReadLine();

            VMOperateRequest[] vmDels = new VMOperateRequest[] {
                AddVirtualMachine, //Post request
                GetVirtualMachineState, //Get request
                DeleteVirtualMachine };//Delete request

            X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
            certificateStore.Open(OpenFlags.ReadOnly);
            X509Certificate2Collection certs = certificateStore.Certificates.Find(
                X509FindType.FindByThumbprint,
                CertificateThumbprint,
                false);

            if (certs.Count == 0)
            {
                Console.WriteLine("Can't find the certificate in your local computer.");
                Console.ReadKey();
                return;
            }
            else
            {
                Certificate = certs[0];
            }

            Console.WriteLine("Please choose the operation:" +
                "\n1.Add new VM\n2.Get VM state\n3.delete VM\n" +
                "Please input the number");
            int number = int.Parse(Console.ReadLine()) - 1;
            HttpWebRequest request;

            while (true)
            {
                if (number >= 0 && number <= 2)
                {
                    request = vmDels[number]();
                    break;
                }
                else
                {
                    Console.Write("Please input right number.");
                }
            }

            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Display the web response status code.
                Console.WriteLine("Response status code: " + response.StatusCode);

                // Display the request ID returned by Windows Azure.
                if (null != response.Headers)
                {
                    Console.WriteLine("x-ms-request-id:"
                    + response.Headers["x-ms-request-id"]);

                }
                // Parse the web response.
                Stream responseStream = response.GetResponseStream();
                StreamReader reader = new StreamReader(responseStream);

                // Display the raw response.
                Console.WriteLine("Response output:");
                Console.WriteLine(reader.ReadToEnd());
                Console.WriteLine("Status code:{0}", response.StatusCode);

                // Close the resources no longer needed.
                response.Close();
                responseStream.Close();
                reader.Close();
                Console.ReadKey();
            }
            catch (WebException ex)
            {
                using (HttpWebResponse exceptionResponse = ex.Response as HttpWebResponse)
                {
                    Stream responseStream = exceptionResponse.GetResponseStream();
                    StreamReader reader = new StreamReader(responseStream);

                    // Display the raw response.
                    Console.WriteLine("Response output:");
                    string str = reader.ReadToEnd();
                }
                Console.Write(ex.Response.Headers.ToString());
                Console.Read();
            }
        }
        public static void Main(string[] args)
        {
            Console.WriteLine("Please first input your subscription ID");
            SubscriptionID = Console.ReadLine();

            Console.WriteLine("Please enter the service name you want to hold the VM");
            ServiceName = Console.ReadLine();

            Console.WriteLine("Please enter the Azure management certificate thumbprint:");
            CertificateThumbprint = Console.ReadLine();

            VMOperateRequest[] vmDels = new VMOperateRequest[] {
                AddVirtualMachine,      //Post request
                GetVirtualMachineState, //Get request
                DeleteVirtualMachine
            };                          //Delete request

            X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);

            certificateStore.Open(OpenFlags.ReadOnly);
            X509Certificate2Collection certs = certificateStore.Certificates.Find(
                X509FindType.FindByThumbprint,
                CertificateThumbprint,
                false);


            if (certs.Count == 0)
            {
                Console.WriteLine("Can't find the certificate in your local computer.");
                Console.ReadKey();
                return;
            }
            else
            {
                Certificate = certs[0];
            }

            Console.WriteLine("Please choose the operation:" +
                              "\n1.Add new VM\n2.Get VM state\n3.delete VM\n" +
                              "Please input the number");
            int            number = int.Parse(Console.ReadLine()) - 1;
            HttpWebRequest request;

            while (true)
            {
                if (number >= 0 && number <= 2)
                {
                    request = vmDels[number]();
                    break;
                }
                else
                {
                    Console.Write("Please input right number.");
                }
            }


            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Display the web response status code.
                Console.WriteLine("Response status code: " + response.StatusCode);

                // Display the request ID returned by Windows Azure.
                if (null != response.Headers)
                {
                    Console.WriteLine("x-ms-request-id:"
                                      + response.Headers["x-ms-request-id"]);
                }
                // Parse the web response.
                Stream       responseStream = response.GetResponseStream();
                StreamReader reader         = new StreamReader(responseStream);

                // Display the raw response.
                Console.WriteLine("Response output:");
                Console.WriteLine(reader.ReadToEnd());
                Console.WriteLine("Status code:{0}", response.StatusCode);


                // Close the resources no longer needed.
                response.Close();
                responseStream.Close();
                reader.Close();
                Console.ReadKey();
            }
            catch (WebException ex)
            {
                using (HttpWebResponse exceptionResponse = ex.Response as HttpWebResponse)
                {
                    Stream       responseStream = exceptionResponse.GetResponseStream();
                    StreamReader reader         = new StreamReader(responseStream);

                    // Display the raw response.
                    Console.WriteLine("Response output:");
                    string str = reader.ReadToEnd();
                }
                Console.Write(ex.Response.Headers.ToString());
                Console.Read();
            }
        }