Exemple #1
0
        protected virtual void throwWhenErrResponse(RestSharp.IRestResponse response, string resource)
        {
            if (response.StatusCode != HttpStatusCode.OK &&
                response.StatusCode != HttpStatusCode.Created &&
                response.StatusCode != HttpStatusCode.Accepted &&
                response.StatusCode != HttpStatusCode.NoContent
                )
            {
                var errMsg = parseError(response);

                if (string.IsNullOrWhiteSpace(errMsg))
                {
                    errMsg = $"{response.StatusDescription}";
                }

                if (Logger != null)
                {
                    Logger.Error($"Request to {resource} failed: " + errMsg, logCtx);
                    Logger.Error($"Request to {resource} failed: " + response.Content, logCtx);
                }

                throw new RestResponseException(errMsg)
                      {
                          Response          = response,
                          StatusCode        = response.StatusCode,
                          StatusDescription = response.StatusDescription
                      };
            }
        }
Exemple #2
0
        public List <Game> getPlatforms()
        {
            RestSharp.RestRequest request = new RestSharp.RestRequest("api/platforms", RestSharp.Method.GET);
            request.AddParameter("api_key", apiKey, RestSharp.ParameterType.QueryString);
            request.AddParameter("filter", "id:157|23|36|43", RestSharp.ParameterType.QueryString);
            request.AddParameter("format", "json", RestSharp.ParameterType.QueryString);
            request.AddParameter("sort", "original_release_date:desc", RestSharp.ParameterType.QueryString);

            RestSharp.IRestResponse response = client.Execute(request);

            dynamic results = JsonConvert.DeserializeObject <dynamic>(response.Content);

            JObject obj  = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(response.Content);
            JArray  jarr = (JArray)obj["results"];

            List <Game> games = new List <Game>();

            foreach (var item in jarr)
            {
                string Id = Convert.ToString(item["id"]);

                if (!Id.Equals("67742") && !Id.Equals("59938") && !Id.Equals("71095") && !Id.Equals("70513") && !Id.Equals("65713") && !Id.Equals("66679"))
                {
                    Game game = new Game()
                    {
                        Name  = Convert.ToString(item["name"]),
                        Image = Convert.ToString(item["image"]["original_url"])
                    };

                    games.Add(game);
                }
            }

            return(games);
        }
Exemple #3
0
        private void ResponseVerifications(BaseRestSharp.IRestResponse response, bool throwException, string url, Enums.Method methodType)
        {
            // end of index logic
            if (throwException)
            {
                if (response.ErrorException != null)
                {
                    throw response.ErrorException;
                }
            }

            if (!IsRequestStatusCodeSuccess(response.StatusCode))
            {
                switch (response.StatusCode)
                {
                case HttpStatusCode.NotFound:
                    throw new WebApiException($"{url} has thrown status code : {response.StatusCode}. Please check that you have spelled the url correctly");

                case HttpStatusCode.InternalServerError:
                    throw new WebApiException($"{url} has thrown status code : {response.StatusCode}.{response.ErrorMessage} Content :{response.Content}");

                case HttpStatusCode.MethodNotAllowed:
                    throw new WebApiException($"{url} has thrown status code : {response.StatusCode}. {methodType} verb is not supported. Change the method type to a supported one");

                default:
                    throw new WebApiException($"{url} has thrown status code : {response.StatusCode} {response.ErrorMessage} {response.Content}");
                }
            }
        }
Exemple #4
0
        private static void LogRequest(RestRequest request, RestSharp.IRestResponse result)
        {
            RestManager rest_man    = privInstance;
            string      log_message = String.Format("{0} - {1} {2}", result.StatusCode.ToString(), request.Method.ToString(), rest_man.Client.BuildUri(request));

            FDLog.LogRequest(log_message);
        }
        /// <summary>
        /// Manages the session credentials
        /// </summary>
        /// <param name="getMethod">Need to know what type of action should occur</param>
        private bool ManageServerSessions(Func <RestSharp.Method> getMethod)
        {
            if (clientConfig.IsSessionRequired == false)
            {
                return(true);
            }

            IRestRequest updateSession = new RestSharp.RestRequest(clientConfig.SessionAddress);

            if (getMethod != null)
            {
                updateSession.Method = getMethod();
            }
            else
            {
                throw new InvalidOperationException("Unable to manage server sessions without knowing which method to use");
            }

            AddAuthTokensAsNecessary(updateSession);
            CleanRequest(ref updateSession);

            RestSharp.IRestResponse response = client.Execute(updateSession);

            SetTokenFromCookies(client);

            return(response.StatusCode == HttpStatusCode.Created || response.StatusCode == HttpStatusCode.OK);
        }
Exemple #6
0
        public static RestSharp.IRestResponse getResponse(string url)
        {
            RestClient  clientApp = new RestClient(url);
            RestRequest request   = new RestRequest(Method.GET);

            RestSharp.IRestResponse requestResult = clientApp.Execute(request);

            return(requestResult);
        }
        private static string GetErrorStatus(RestSharp.IRestResponse response)
        {
            string str = string.Format("Http Status Code: {0} - {1} URL: {2}",
                                       (int)response.StatusCode,
                                       response.StatusDescription,
                                       response.ResponseUri.AbsoluteUri);

            return(str);
        }
Exemple #8
0
        private IRestResponse GetContactList()
        {
            //Initialize the request object with proper method and URL
            RestRequest request = new RestRequest("/contacts/list", Method.GET);

            // Execute the request
            RestSharp.IRestResponse response = client.Execute(request);
            return(response);
        }
Exemple #9
0
        public T Deserialize <T>(RestSharp.IRestResponse response)
        {
            String content = response.Content;
            JsonSerializerSettings settings = new JsonSerializerSettings {
            };

            T result = JsonConvert.DeserializeObject <T>(content, settings);

            return(result);
        }
Exemple #10
0
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")] // this usage is perfectly correct
        public T Deserialize <T>(RestSharp.IRestResponse response)
        {
            var content = response.Content;

            using (var stringReader = new StringReader(content))
                using (var jsonTextReader = new JsonTextReader(stringReader))
                {
                    return(serializer.Deserialize <T>(jsonTextReader));
                }
        }
 protected void StatusCodeLogging(RestSharp.IRestResponse response, Type type)
 {
     if (response.StatusCode == System.Net.HttpStatusCode.NoContent)
     {
         log.DebugFormat("[{0}] - Http Status Code: {1} - {2}", type.Name, (int)response.StatusCode, response.StatusDescription);
     }
     else
     {
         log.ErrorFormat("[{0}] - Http Status Code: {1} - {2}", type.Name, (int)response.StatusCode, response.StatusDescription);
     }
 }
        private static string GetPagingStatus(RestSharp.IRestResponse response, int?page, int count)
        {
            if (page == null)
            {
                page = 0;
            }
            string str = string.Format("Page {0} Record Count {1} -- API Limit: {2}", page, count,
                                       response.Headers.Where(x => x.Name == "X-BC-ApiLimit-Remaining").FirstOrDefault().Value);

            return(str);
        }
        /// <summary>
        /// Checks whether the user is currently authenticated
        /// </summary>
        public bool IsAuthenticated()
        {
            RestSharp.IRestRequest isAuthenticated = new RestSharp.RestRequest(clientConfig.IsAuthenticatedAddress);

            CleanRequest(ref isAuthenticated);

            RestSharp.IRestResponse response = client.Execute(isAuthenticated);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                ThrowExceptionIfNecessary(response, "IsAuthenticated");
            }

            return(response.StatusCode == HttpStatusCode.OK);
        }
Exemple #14
0
        private bool IsResponseError(RestSharp.IRestResponse response)
        {
            if (response == null)
            {
                return(false);
            }

            if (string.IsNullOrWhiteSpace(response.ErrorMessage) &&
                response.ErrorException == null)
            {
                return(false);
            }

            return(true);
        }
Exemple #15
0
        public void doRestCall(string url, string body)
        {
            var client  = new RestClient(url);
            var request = new RestRequest(Method.POST);

            request.XmlSerializer = new RestSharp.Serializers.DotNetXmlSerializer();
            request.RequestFormat = DataFormat.Xml;

            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Content-Type", "text/xml");
            request.AddParameter("undefined", body, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            this.res = response;
        }
Exemple #16
0
        private IRestResponse Convert(RestSharp.IRestResponse resp)
        {
            RestResponse r = new RestResponse();

            r.Content         = resp.Content;
            r.ContentEncoding = resp.ContentEncoding;
            r.ContentLength   = resp.ContentLength;
            r.ContentType     = resp.ContentType;
            r.ErrorException  = resp.ErrorException;
            r.ErrorMessage    = resp.ErrorMessage;
            r.ResponseUri     = resp.ResponseUri;
            r.Server          = resp.Server;
            r.StatusCode      = resp.StatusCode;
            return(r);
        }
Exemple #17
0
        private string LoginServer()
        {
            var client       = new RestSharp.RestClient("http://webservice.assetsapp.com/mdw/");
            var requestToken = new RestSharp.RestRequest("Token", RestSharp.Method.POST);

            requestToken.AddParameter("UserName", "*****@*****.**");
            requestToken.AddParameter("Password", "Middleware2016!");
            requestToken.AddParameter("grant_type", "password");
            requestToken.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            RestSharp.IRestResponse responseToken = client.Execute(requestToken);
            var        contentToken   = responseToken.Content;
            TokenClass responseToken2 = client.Execute <TokenClass>(requestToken).Data;
            var        token          = responseToken2.access_token;
            var        statusToken    = responseToken.StatusDescription;

            if (statusToken == "OK" || token != null || token != "")
            {
                return(token);
            }
            //Register

            var requestRegister = new RestSharp.RestRequest("api/Account/Register", RestSharp.Method.POST);

            requestRegister.AddParameter("UserName", "*****@*****.**");
            requestRegister.AddParameter("Email", "*****@*****.**");
            requestRegister.AddParameter("Password", "Middleware2016!");
            requestRegister.AddParameter("ConfirmPassword", "Middleware00000!");
            requestRegister.AddHeader("Content-Type", "application/json");
            RestSharp.IRestResponse responseRegister = client.Execute(requestRegister);
            var contentRegister = responseRegister.Content;
            var statusRegister  = responseRegister.StatusDescription;

            if (contentRegister.Contains("is already taken"))
            {
                statusRegister = "OK";
            }
            if (statusRegister != "OK")
            {
                return("");
            }
            //Token
            responseToken  = client.Execute(requestToken);
            contentToken   = responseToken.Content;
            responseToken2 = client.Execute <TokenClass>(requestToken).Data;
            token          = responseToken2.access_token;
            statusToken    = responseToken.StatusDescription;
            return(token);
        }
Exemple #18
0
        public dynamic SendRequest()
        {
            var client = new RestSharp.RestClient(this.getApiURL());

            client.Timeout = -1;
            var request = new RestSharp.RestRequest(Method.POST);

            this.addHeaders(request);
            var query = this.getQueryString();

            request.AddParameter("application/json", query, ParameterType.RequestBody);
            RestSharp.IRestResponse response = client.Execute(request);

            dynamic resp = JsonConvert.DeserializeObject(response.Content);

            return(resp);
        }
Exemple #19
0
        public static async Task <AzureLogIn_Response> ForceAuthentication()
        {
            var client = new RestClient("https://login.windows.net/common/oauth2/token");

            client.Timeout = -1;
            var internalRequest = new RestRequest(RestSharp.Method.POST);

            internalRequest.AddHeader("Cookie", "x-ms-gateway-slice=prod; stsservicecookie=ests; fpc=AgHuTQ6BuTdPsqX9wzbtm_AqP8ELAQAAADqYsdYOAAAA");
            internalRequest.AlwaysMultipartFormData = true;
            internalRequest.AddParameter("grant_type", "password");
            internalRequest.AddParameter("username", "*****@*****.**");
            internalRequest.AddParameter("password", "Micheal30");
            internalRequest.AddParameter("client_id", "b68f7dee-4098-4f3f-a9db-36a8b71305aa");
            internalRequest.AddParameter("resource", "https://graph.microsoft.com");
            RestSharp.IRestResponse response = await client.ExecuteAsync(internalRequest);

            return(JsonHelper.ToClass <AzureLogIn_Response>(response.Content));
        }
Exemple #20
0
        static void Main(string[] args)
        {
            displayWelcome();

            RestSharp.IRestResponse apiResponse = getResponse("https://swapi.dev/api/people/");

            StarWarsResponse apiJSON = JsonConvert.DeserializeObject <StarWarsResponse>(apiResponse.Content);

            foreach (var personaje in apiJSON.Results)
            {
                RestSharp.IRestResponse planetResponse = getResponse(personaje.Homeworld);
                Homeworld planetJSON = JsonConvert.DeserializeObject <Homeworld>(planetResponse.Content);

                Console.WriteLine("Nombre: " + personaje.Name);
                Console.WriteLine("Altura: " + personaje.Height);
                Console.WriteLine("Masa: " + personaje.Mass);
                Console.WriteLine("Planeta: " + planetJSON.name);
                Console.WriteLine("------------------");
            }
        }
Exemple #21
0
        public int getRegisterationStatusCode(string email, string password)
        {
            if (email != null && password != null)
            {
                RegisterRequest req = new RegisterRequest();
                req.email             = email;
                req.password          = password;
                request.RequestFormat = DataFormat.Json;
                restResponse          = _client.Execute(request);
            }
            else if (email != null && password == null)
            {
                BadRegisterRequest req = new BadRegisterRequest();
                req.email             = email;
                request.RequestFormat = DataFormat.Json;
                restResponse          = _client.Execute(request);
            }

            //Extract status code from received response and store as an Interger
            return((int)restResponse.StatusCode);
        }
Exemple #22
0
        /// <summary>
        /// Get a valid access token using credentials.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <TokenResp> GetTokenAsync(TokenReq request)
        {
            var client = new RestSharp.RestClient(GlobalSettings.AzureLoginEndpoint);

            client.Timeout = -1;

            var internalRequest = new RestSharp.RestRequest(RestSharp.Method.POST);

            internalRequest.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            internalRequest.AddHeader("Cookie", "x-ms-gateway-slice=prod; stsservicecookie=ests; fpc=AhfW_FJrHCJGl1Lr3XFEqOjhvS2OAQAAAPhsttYOAAAA");
            internalRequest
            .AddParameter("grant_type", request.GrantType)
            .AddParameter("username", request.Username)
            .AddParameter("password", new System.Net.NetworkCredential(string.Empty, request.Password).Password)
            .AddParameter("client_id", GlobalSettings.ClientId)
            .AddParameter("resource", GlobalSettings.MsGraphResourceEndpoint);

            RestSharp.IRestResponse response = await client.ExecuteAsync(internalRequest);

            return(JsonHelper.ToClass <TokenResp>(response.Content));
        }
Exemple #23
0
        public String fetchToken()
        {
            var client = new RestSharp.RestClient(this.getTokenUrl());

            client.Timeout = -1;
            var request = new RestSharp.RestRequest(Method.GET);

            request.AddHeader("x-visp-username", this.app_username);
            request.AddHeader("x-visp-password", this.app_password);
            request.AddHeader("x-visp-client-id", this.client_id);
            request.AddHeader("x-visp-client-secret", this.client_secret);

            request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };

            RestSharp.IRestResponse response = client.Execute(request);

            AuthResponse parsed = parseJson(response.Content);

            this.token = parsed.token;
            return(this.token);
        }
Exemple #24
0
        /// <summary>
        /// Get a valid access token using application credentials.
        /// </summary>
        /// <returns></returns>
        public async Task <TokenResp> GetTokenAsync()
        {
            var client = new RestSharp.RestClient(GlobalSettings.AzureLoginMsOnlineEndpoint);

            client.Timeout = -1;

            var internalRequest = new RestSharp.RestRequest(RestSharp.Method.POST);

            internalRequest.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            internalRequest.AddHeader("Cookie", "stsservicecookie=ests; x-ms-gateway-slice=estsfd; fpc=Ar8LiulPgZ5CpGJ2VSD-M7ldt19hAQAAAMKFttYOAAAA");
            internalRequest
            .AddParameter("client_id", GlobalSettings.ClientId)
            .AddParameter("state", "12345")
            .AddParameter("client_secret", GlobalSettings.ClientSecretId)
            .AddParameter("grant_type", "client_credentials")
            .AddParameter("scope", "https://graph.microsoft.com/.default");

            RestSharp.IRestResponse response = await client.ExecuteAsync(internalRequest);

            return(JsonHelper.ToClass <TokenResp>(response.Content));
        }
Exemple #25
0
        protected virtual string parseError(RestSharp.IRestResponse response)
        {
            string errMsg = null;

            try
            {
                var errResponse = JsonConvert.DeserializeObject <JObject>(response.Content.TrimStart((char)65279));
                errMsg = errResponse?["code"]?.Value <string>() + " - " + errResponse?["message"]?.Value <string>();

                // debitoor
                var errArr = errResponse?["errors"];
                if (errArr != null)
                {
                    errMsg += string.Join(", ", errArr.Select(e => $" prop: {e["property"]?.Value<string>()} msg: {e["message"]?.Value<string>()}"));
                }
            }
            catch
            {
            }

            errMsg = errMsg ?? ($"Anfrage fehlgeschlagen: {response.StatusCode} {response.StatusDescription}");

            return(errMsg);
        }
Exemple #26
0
 public static RestClientException CreateErrorException(RSharp.RestClient restClient, RSharp.IRestResponse restResponse, Exception ex)
 => new RestClientException(HttpStatusCode.InternalServerError,
                            ex.Message,
                            restResponse.Request.ToRestClientRequest(restClient.BaseUrl),
                            restResponse.ToRestClientRequest());
Exemple #27
0
 public static RestClientException CreateFailedException(RSharp.RestClient restClient, RSharp.IRestResponse restResponse)
 => RestClientException.Create(restResponse.StatusCode,
                               restResponse.StatusDescription,
                               restResponse.Request.ToRestClientRequest(restClient.BaseUrl),
                               restResponse.ToRestClientRequest());
Exemple #28
0
        public Task <BaseRestSharp.RestResponse> InvokeCall(HttpServiceRequest httpRequest, bool throwException = true,
                                                            bool isElasticLog = false, bool invokeAsync = false)
        {
            ServicePointManager.DefaultConnectionLimit = 200;
            // Base URL
            BaseRestSharp.RestClient    client   = new BaseRestSharp.RestClient(httpRequest.Url);
            BaseRestSharp.IRestResponse response = null;
            Stopwatch watch = new Stopwatch();


            // Method to be triggered
            BaseRestSharp.RestRequest request = new BaseRestSharp.RestRequest(httpRequest.Action, (BaseRestSharp.Method)httpRequest.MethodType)
            {
                Timeout = httpRequest.Timeout
            };

            if (httpRequest.CookieJar != null)
            {
                foreach (Cookie cookie in httpRequest.CookieJar)
                {
                    request.AddCookie(cookie.Name, cookie.Value);
                }
            }

            if (httpRequest.Body != null)
            {
                request.RequestFormat = BaseRestSharp.DataFormat.Json;
                request.AddJsonBody(httpRequest.Body);
            }

            if (httpRequest.Headers != null)
            {
                foreach (KeyValuePair <string, string> header in httpRequest.Headers.ToList())
                {
                    request.AddHeader(header.Key, header.Value);
                }
            }


            if (httpRequest.QueryStringParameters != null)
            {
                foreach (KeyValuePair <string, string> param in httpRequest.QueryStringParameters.ToList())
                {
                    request.AddQueryParameter(param.Key, param.Value);
                }
            }

            watch.Start();

            BaseRestSharp.RestResponse customRestResponse = null;
            TaskCompletionSource <BaseRestSharp.RestResponse> taskCompletionSource = new TaskCompletionSource <BaseRestSharp.RestResponse>();


            response = client.Execute(request);
            watch.Stop();

            taskCompletionSource.SetResult(customRestResponse);

            ResponseVerifications(response, throwException, httpRequest.Url, httpRequest.MethodType);


            return(taskCompletionSource.Task);
        }