public ProductsDetailsResponse ProductRestSharp(ProductsDetailsRequest prodRequest) { var client = new RestClient("https://www.kroger.com/"); client.UserAgent = "_/_"; client.AutomaticDecompression = false; var request = new RestRequest(PRODUCTS_DETAILS_ENDPOINT, Method.POST); request.AddHeader("Accept-Encoding", null); request.AddHeader("User-Agent", "_/_"); request.AddCookie("X", "5"); request.AddHeader("Accept", "*/*"); request.JsonSerializer = new NewtonsoftJsonSerializer(); request.AddJsonBody(prodRequest); IRestResponse <ProductsDetailsResponse> response = client.Execute <ProductsDetailsResponse>(request); var f = response.Data; response = client.Execute <ProductsDetailsResponse>(request); return(response.Data); //_client.DefaultRequestHeaders.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("*/*")); //_client.DefaultRequestHeaders.Add("Cookie", ""); //_client.DefaultRequestHeaders.Add("User-Agent", "_/_"); }
/// <summary> /// Get detailed information for specified products /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <ProductsDetailsResponse> ProductsDetailsAsync(ProductsDetailsRequest request) { ProductsDetailsResponse productDetailsResponse = null; string payload = JsonConvert.SerializeObject(request); int tries = 3; bool failed = false; do { tries--; failed = false; try { IRestRequest restRequest = new RestRequest(PRODUCTS_DETAILS_ENDPOINT, Method.POST); restRequest.JsonSerializer = new NewtonsoftJsonSerializer(); restRequest.AddJsonBody(request); restRequest.AddCookie("_", "_"); //a cookie is required by the request contract, //restsharp requires that this not be an empty string in order for the header be set if (request.StoreId != null && request.DivisionId != null) { restRequest.AddHeader("store-id", request.StoreId); restRequest.AddHeader("division-id", request.DivisionId); } IRestResponse <ProductsDetailsResponse> restResponse = await _client.ExecutePostTaskAsync <ProductsDetailsResponse>(restRequest); productDetailsResponse = restResponse.Data; } catch (JsonReaderException) { failed = true; } } while (tries > 0 && failed); return(productDetailsResponse); }
/// <summary> /// Get detailed information for specified products /// </summary> /// <param name="request"></param> /// <returns></returns> public ProductsDetailsResponse ProductsDetails(ProductsDetailsRequest request) { return(ProductsDetailsAsync(request).Result); }