Exemplo n.º 1
0
        private T CallRun(string method, string urlParameters)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(this.baseUrl);
            if (accountResource != null)
            {
                accessToken = accountResource.GetCurrentAccessToken();
                client.DefaultRequestHeaders.Add(AuthorizeUtil.TokenHeaderName, "Basic " + accessToken);
            }
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");

            // Add an Accept header for JSON format.
            HttpResponseMessage response = null;
            T result = null;

            switch (method.ToLower())
            {
            case "get":
                Task <HttpResponseMessage> responseTask = client.GetAsync(urlParameters);
                responseTask.Wait();
                response = responseTask.Result;
                if (response.StatusCode == HttpStatusCode.Accepted ||
                    response.StatusCode == HttpStatusCode.OK)
                {
                    Task <T> task = response.Content.ReadAsAsync <T>();
                    task.Wait();
                    result = task.Result;
                    return(result);
                }
                else
                {
                    string headerMessage = string.Empty;
                    foreach (var header in response.Headers)
                    {
                        headerMessage += string.Format("Key:{0},Value:{1}", header.Key, header.Value);
                    }
                    throw new TalentGraberException(response.StatusCode, headerMessage);
                }

            default:
                throw new NotImplementedException();
            }
        }