Пример #1
0
        static async Task SaveFirstPageAsync(
            FinnaApiSearch search,
            HttpClient client,
            Throttler api,
            string id)
        {
            while (!api.IsAvailable(DateTime.Now))
            {
                Thread.Sleep(api.MinIntervalMillis);
            }

            var request = search.CreateRequest();

            Console.WriteLine("Request: " + request.RequestUri.ToString());

            var response = await client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                Console.WriteLine(response.StatusCode.ToString() + " " + response.ReasonPhrase);
            }
            if (response.Content != null)
            {
                var content = await response.Content.ReadAsStringAsync();

                File.WriteAllText($"response{id}.json", content);
            }
            api.RequestCompleted(DateTime.Now);
        }
Пример #2
0
 public void SetUp()
 {
     search = new FinnaApiSearch()
     {
         BaseUrl     = "https://api.finna.fi/api/v1/search",
         LookFor     = "x",
         Building    = "0/Heili/",
         PublishDate = "2018",
         Genre       = "tieteiskirjallisuus",
         Fields      = new List <string>()
         {
             "field1", "field2"
         }
     };
     request = search.CreateRequest();
     uri     = request.RequestUri;
 }
Пример #3
0
        static FinnaApiSearch CreateSearch(NameValueCollection settings)
        {
            var baseUrl        = settings["FinnaBaseUrl"];
            var building       = settings["FinnaBuildingParam"];
            var resultsPerPage = settings["FinnaResultsPerPage"];
            var fields         = settings["FinnaFields"].Split(',').ToList();
            var format         = settings["FinnaFormat"];
            var search         = new FinnaApiSearch()
            {
                BaseUrl  = baseUrl,
                Building = building,
                Limit    = resultsPerPage,
                Fields   = fields,
            };

            if (format != null)
            {
                search.SetFilter("format", format);
            }
            return(search);
        }