Esempio n. 1
0
        public T Request <T>(string url, string method = Get, T data = null, IAuthSerializer auth = null) where T : class
        {
            string response;
            var    json = new JsonParser();

            using (var client = new WebClient())
            {
                client.Headers[HttpRequestHeader.ContentType] = "application/json";
                client.Encoding = Encoding.UTF8;
                try
                {
                    if (auth != null)
                    {
                        Auth(client, auth);
                    }


                    if (method == Post)
                    {
                        var param = json.ParseObjToStr(data);
                        response = client.UploadString(url, param);
                    }
                    else
                    {
                        client.QueryString = SetParameters(data);
                        response           = client.DownloadString(url);
                    }
                }
                catch (WebException ex)
                {
                    dynamic servResp = ex.Response;
                    if (ex.Response == null)
                    {
                        response = "{\"detail\":[\"Невозможно подключиться к серверу\"]}";
                    }
                    else
                    {
                        response = "{\"detail\":[\"Статус запроса " + servResp.StatusCode + "\"]}";
                    }
                }
            }

            return(json.ParseStrToObj <T>(response));
        }
Esempio n. 2
0
        private void Auth(WebClient client, IAuthSerializer auth)
        {
            var bytes = Encoding.UTF8.GetBytes(auth.username + ":" + auth.password);

            client.Headers.Add("Authorization", $"Basic {Convert.ToBase64String(bytes)}");
        }