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)); }
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)); }