Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

API GET request in C#

I have a task where I have to write a program which displays you the sunrise and sunset time at your location on a WPF GUI (C#). To make this work, I need to use the Sunrise Sunset API from https://sunrise-sunset.org/api

The description says: "Ours is a very simple REST api, you only have to do a GET request to https//api.sunrise-sunset.org/json."

Because of the fact that I am a beginner and I've never used an API before, I don't know how to make a GET Request.

So my questions are: What even is a GET Request and how can I make one to use the sunrise-sunset API?

Cheers!

like image 808
44ay_ Avatar asked Dec 03 '25 17:12

44ay_


1 Answers

According to the API document, you should specify the geographic coordinate by lat and lng in the API Uri. In the following example, I set them lat=36.7201600&lng=-4.4203400.

Then, using HttpClient.GetStringAsync method, I send a GET request to the Uri. It returns the response body as a string.

Next, I deserialize the string to my DTO object (here SunriseSunsetDto). and then get sunrise and sunset properties.

Here is the methods:

   public string GetSunrise()
    {
        HttpClient client = new HttpClient();
        var responce = client.GetStringAsync("https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400").Result;
        var Sunrise = JsonSerializer.Deserialize<SunriseSunsetDto>(responce.ToString()).Results.Sunrise;
        return Sunrise;
    }
    public string GetSunset()
    {
        HttpClient client = new HttpClient();
        var responce = client.GetStringAsync("https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400").Result;
        var Sunset = JsonSerializer.Deserialize<SunriseSunsetDto>(responce.ToString()).Results.Sunset;
        return Sunset;
    }

And here is the SunriseSunsetDto class:

public class SunriseSunsetDto
{
    public Results Results { get; set; }
    public string Status { get; set; }
}
public class Results
{
    [JsonPropertyName("sunrise")]
    public string Sunrise { get; set; }
    [JsonPropertyName("sunset")]
    public string Sunset { get; set; }
    [JsonPropertyName("solar_noon")]
    public string SolarNoon { get; set; }
    [JsonPropertyName("day_length")]
    public string DayLength { get; set; }
    [JsonPropertyName("civil_twilight_begin")]
    public string CivilTwilightBegin { get; set; }
    [JsonPropertyName("civil_twilight_end")]
    public string CivilTwilightEnd { get; set; }
    [JsonPropertyName("nautical_twilight_begin")]
    public string NauticalTwilightBegin { get; set; }
    [JsonPropertyName("nautical_twilight_end")]
    public string NauticalTwilightEnd { get; set; }
    [JsonPropertyName("astronomical_twilight_begin")]
    public string AstronomicalTwilightBegin { get; set; }
    [JsonPropertyName("astronomical_twilight_end")]
    public string AstronomicalTwilightEnd { get; set; }
}
like image 110
Mustafa Bazghandi Avatar answered Dec 05 '25 06:12

Mustafa Bazghandi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!