static void Main(string[] args) { IGenericHttpClient <ProductDto> httpClientSample = new CustomHttpClient <ProductDto>(); IProductService productService = new ProductManager(httpClientSample); var products = productService.GetAll(); var product = productService.GetById(1); Console.WriteLine("Http Client Worked..."); IGenericHttpClient <ProductDto> restClientSample = new CustomRestClient <ProductDto>(); IProductService productService2 = new ProductManager(restClientSample); var products2 = productService2.GetAll(); var product2 = productService2.GetById(1); Console.WriteLine("Rest Client Worked..."); Console.Read(); }
public static CustomRestClient Create(string baseUrl, bool includeCookieContainer = false, string sessionId = null, int timeout = 3000) { var client = new CustomRestClient(baseUrl); if (includeCookieContainer) { client.CookieContainer = new CookieContainer(); } client.SessionId = sessionId; client.Timeout = timeout; return(client); }
protected static IRestResponse SendRequest(CustomRestClient client, IRestRequest request, bool validateResponse = true) { var response = client.SendRequest(request); if (validateResponse) { ValidateResponse(response, request.Method); } else if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.NoContent) { Console.WriteLine($"Log: Expected OK or NoContent but found {response.StatusCode}"); } return(response); }
public T Execute <T>(RestRequest request) where T : new() { var client = CustomRestClient.CreateClient(this.baseUrl); request.AddHeader(Constants.ApiKeyHeader, this.adminApiKey); var response = client.Execute <T>(request); while (response.StatusCode.Equals(429)) { //we hit rate limit and must wait for 1 second Thread.Sleep(1000); response = client.Execute <T>(request); } return(response.StatusCode == HttpStatusCode.OK ? response.Data : new T()); }
protected static TResultModel SendRequestWithRetry <TResultModel>(CustomRestClient client, IRestRequest request, bool lookForItems = false, int maxRetry = 3, bool validateResponse = true) { var response = client.SendRequest(request); var result = response.DeserializeJsonResponseContent <TResultModel>(); var retry = 0; if (lookForItems) { while (((dynamic)result).Items.Count == 0 && retry < maxRetry) { Thread.Sleep(3000); response = client.SendRequest(request); result = response.DeserializeJsonResponseContent <TResultModel>(); retry++; } } else { while (result == null && retry < maxRetry) { Thread.Sleep(3000); response = client.SendRequest(request); result = response.DeserializeJsonResponseContent <TResultModel>(); retry++; } } if (validateResponse) { ValidateResponse(response, request.Method); } else if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.NoContent) { Console.WriteLine($"Log: Expected OK or NoContent but found {response.StatusCode}"); } return(result); }
private void RestSampleCode() { var serializer = new JsonSerializer(); var _builder = new RestBuilder("https://jsonplaceholder.typicode.com/users/1"); PostsRestClient client = new PostsRestClient(new CacheService(), serializer); var response = client.GetByID(1); CustomRestClient customRestClient = new CustomRestClient(new CacheService(), serializer, "https://jsonplaceholder.typicode.com/users/1"); var request = _builder .SetFormat(DataFormat.Json) .SetMethod(Method.GET) .Create(); var userResponse = customRestClient.Get <UserModel>(request); //serializer.Deserialize<> }
public BaseStep(ScenarioContext scenarioContext) { _scenarioContext = scenarioContext; Client = new CustomRestClient("https://experience.co.nz"); }
public FreshdeskClient(string domainName, string username, string password) { client = (CustomRestClient) new CustomRestClient().UseSerializer(() => new CustomSerializer()); client.BaseUrl = new Uri("https://" + domainName); client.Authenticator = new HttpBasicAuthenticator(username, password); }