Пример #1
0
        string SendViaAPIUploadOneReport(WebClient client, string filename, string xml)
        {
            byte[]  answer  = null;
            Version version = Assembly.GetExecutingAssembly().GetName().Version;

            client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
            client.Headers.Add(HttpRequestHeader.UserAgent, "PingCastle " + version.ToString(4));
            try
            {
                var    request = "{\"xmlReport\": \"" + HealthCheckReportMapBuilder.EscapeJsonString(xml) + "\",\"filename\":\"" + HealthCheckReportMapBuilder.EscapeJsonString(filename) + "\"}";
                byte[] data    = Encoding.ASCII.GetBytes(request);
                answer = client.UploadData(apiEndpoint + "api/Agent/SendReport", "POST", data);
                return(Encoding.Default.GetString(answer));
            }
            catch (WebException ex)
            {
                if (ex.Response != null)
                {
                    var responseStream = ex.Response.GetResponseStream();
                    if (responseStream != null)
                    {
                        using (var reader = new StreamReader(responseStream))
                        {
                            string responseText = reader.ReadToEnd();
                            throw new ApplicationException(responseText);
                        }
                    }
                }
                throw;
            }
        }
Пример #2
0
        // return JWT token
        void SendViaAPIGetJwtToken(WebClient client)
        {
            ServicePointManager.Expect100Continue = false;
            client.UseDefaultCredentials          = true;
            client.Proxy = WebRequest.DefaultWebProxy;
            Version version = Assembly.GetExecutingAssembly().GetName().Version;

            client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
            client.Headers.Add(HttpRequestHeader.UserAgent, "PingCastle " + version.ToString(4));
            //client.Headers.Add("Authorization", token);
            string token;

            byte[] answer = null;
            try
            {
                string location = Dns.GetHostEntry(Environment.MachineName).HostName;
                byte[] data     = Encoding.Default.GetBytes("{\"apikey\": \"" + HealthCheckReportMapBuilder.EscapeJsonString(apiKey) + "\",\"location\": \"" + HealthCheckReportMapBuilder.EscapeJsonString(location) + "\"}");
                answer = client.UploadData(apiEndpoint + "api/Agent/Login", "POST", data);
                token  = Encoding.Default.GetString(answer);
                client.Headers.Add(HttpRequestHeader.Authorization, token);
            }
            catch (WebException ex)
            {
                if (ex.Response != null)
                {
                    var responseStream = ex.Response.GetResponseStream();
                    if (responseStream != null)
                    {
                        using (var reader = new StreamReader(responseStream))
                        {
                            string responseText = reader.ReadToEnd();
                            throw new UnauthorizedAccessException(responseText);
                        }
                    }
                }
                throw new UnauthorizedAccessException(ex.Message);
            }
        }