Exemple #1
0
        async public Task <StringBody> Post(string url, string json)
        {
            const string JSON_MEDIA_TYPE = "application/json";

            var content      = string.Empty;
            var bodyResponse = new StringBody();

            using (var client = CreateClient(url))
            {
                client.AcceptJson();

                var body = new StringContent(json);
                body.Headers.ContentType = new MediaTypeHeaderValue(JSON_MEDIA_TYPE);
                var response = await client.PostAsync(url, body);

                if (response.Content != null)
                {
                    content = await response.Content.ReadAsStringAsync();
                }

                Trace(url, content, json);

                if (!response.IsSuccessStatusCode)
                {
                    throw new HttpException(response.ReasonPhrase, response.StatusCode, content);
                }

                var headers = response.GetHeaders();
                bodyResponse = new StringBody(content);
                bodyResponse.Headers.AddRange(headers);
            }

            return(bodyResponse);
        }
Exemple #2
0
        async public Task <StringBody> Post(string url, IDictionary <string, string> form)
        {
            if (form == null)
            {
                form = new Dictionary <string, string>();
            }

            var bodyResponse = new StringBody();

            using (var client = CreateClient(url))
            {
                client.AcceptJson();

                var body     = new FormUrlEncodedContent(form);
                var response = await client.PostAsync(url, body);

                string content = await response?.Content?.ReadAsStringAsync();

                Trace(url, content, form.ToString());

                if (!response.IsSuccessStatusCode)
                {
                    throw new HttpException(response.ReasonPhrase, response.StatusCode, content);
                }

                var headers = response.GetHeaders();
                bodyResponse = new StringBody(content);
                bodyResponse.Headers.AddRange(headers);
            }

            return(bodyResponse);
        }
Exemple #3
0
        async public Task <StringBody> Get(string url)
        {
            var content      = string.Empty;
            var bodyResponse = new StringBody();

            using (var client = CreateClient(url))
            {
                var response = await client.GetAsync(url);

                if (response.Content != null)
                {
                    content = await response.Content.ReadAsStringAsync();
                }

                Trace(url, content, string.Empty);

                if (!response.IsSuccessStatusCode)
                {
                    throw new HttpException(response.ReasonPhrase, response.StatusCode, content);
                }

                var headers = response.GetHeaders();
                bodyResponse = new StringBody(content);
                bodyResponse.Headers.AddRange(headers);
            }

            return(bodyResponse);
        }
Exemple #4
0
        async Task <HttpBody <T> > GetApi <T>(string resourceOrUrl, object param)
            where T : class
        {
            HttpBody <T> result;

            try
            {
                // Builds the url
                string url = param.ToQueryString(resourceOrUrl);

                // Gets JSON and parse the result
                StringBody response = await HttpService.Get(url);

                T data = JsonConvert.DeserializeObject <T>(response.Content);
                result = new HttpBody <T>(data, response);
            }
            catch (HttpException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new HttpException(ex);
            }

            return(result);
        }