public static IRestResponse <dynamic> ExecuteRequest(string url,
                                                             string requestService,
                                                             Method method,
                                                             IDictionary <string, string> headers,
                                                             IDictionary <string, string> cookies,
                                                             IDictionary <string, string> parameters,
                                                             bool parameterTypeIsUrlSegment,
                                                             string jsonBody,
                                                             bool httpBasicAuthenticator,
                                                             bool ntlmAuthenticator)
        {
            RestRequest request = new RestRequest(requestService, method);

            foreach (var header in headers)
            {
                request.AddParameter(header.Key, header.Value, ParameterType.HttpHeader);
            }

            foreach (var cookie in cookies)
            {
                request.AddParameter(cookie.Key, cookie.Value, ParameterType.Cookie);
            }

            foreach (var parameter in parameters)
            {
                if (parameterTypeIsUrlSegment)
                {
                    request.AddParameter(parameter.Key, parameter.Value, ParameterType.UrlSegment);
                }
                else
                {
                    request.AddParameter(parameter.Key, parameter.Value);
                }
            }

            request.JsonSerializer = new JsonSerializer();

            if (jsonBody != null)
            {
                if (GeneralHelpers.IsAJsonArray(jsonBody))
                {
                    request.AddJsonBody(new JArray(jsonBody));
                }
                else
                {
                    request.AddJsonBody(JsonConvert.DeserializeObject <JObject>(jsonBody));
                }
            }

            RestClient client = new RestClient(url);

            if (httpBasicAuthenticator)
            {
                client.Authenticator = new HttpBasicAuthenticator(JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_USER"), JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_PASSWORD"));
            }

            if (ntlmAuthenticator)
            {
                client.Authenticator = new NtlmAuthenticator(JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_USER"), JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_PASSWORD"));
            }

            client.AddHandler("application/json", new JsonDeserializer());

            return(client.Execute <dynamic>(request));
        }
Exemple #2
0
        public static async Task <IRestResponse> ExecuteRequest(string url,
                                                                string requestService,
                                                                Method method,
                                                                IDictionary <string, string> headers,
                                                                IDictionary <string, string> cookies,
                                                                IDictionary <string, string> parameters,
                                                                bool parameterTypeIsUrlSegment,
                                                                object jsonBody,
                                                                bool httpBasicAuthenticator,
                                                                bool ntlmAuthenticator)
        {
            RestRequest request = new RestRequest(requestService, method);

            foreach (var header in headers)
            {
                request.AddParameter(header.Key, header.Value, ParameterType.HttpHeader);
            }

            foreach (var cookie in cookies)
            {
                request.AddParameter(cookie.Key, cookie.Value, ParameterType.Cookie);
            }

            foreach (var parameter in parameters)
            {
                if (parameterTypeIsUrlSegment)
                {
                    request.AddParameter(parameter.Key, parameter.Value, ParameterType.UrlSegment);
                }
                else
                {
                    request.AddParameter(parameter.Key, parameter.Value);
                }
            }


            request.JsonSerializer = new JsonSerializer();

            if (jsonBody != null)
            {
                JsonSerializer jsonSerializer = new JsonSerializer();

                string jsonsSerializer = jsonSerializer.Serialize(jsonBody);

                if (GeneralHelpers.IsAJsonArray(jsonsSerializer))
                {
                    request.AddJsonBody(new JArray(jsonSerializer));
                }
                else
                {
                    request.AddJsonBody(JsonConvert.DeserializeObject <JObject>(jsonsSerializer));
                }
            }

            RestClient client = new RestClient(url);

            //client.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; //utilizar url interna do gateway
            //client.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate); //limpar cache

            if (httpBasicAuthenticator)
            {
                //client.PreAuthenticate = true; //caso seja necessária pré atenticação
                client.Authenticator = new HttpBasicAuthenticator(JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_USER"), JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_PASSWORD"));
            }

            if (ntlmAuthenticator)
            {
                client.Authenticator = new NtlmAuthenticator(JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_USER"), JsonBuilder.ReturnParameterAppSettings("AUTHENTICATOR_PASSWORD"));
            }

            return(await client.ExecuteAsync(request));
        }