من می خوام با سی شارپ یه برنامه ای بنویسم که به openweather API یک درخواست get بفرسته
چطوری باید انجامش بدم؟
سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
به ترتیب باید مراحل زیر رو انجام بدین
نصب کتابخانهها:
برای شروع، نیاز به نصب دو کتابخانه HttpClient و Newtonsoft.Json داری میتونی این کار را با NuGet انجام بدی
کد C# برای ارسال درخواست GET:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// کلید API خود را از OpenWeather دریافت کنید
string apiKey = "YOUR_API_KEY";
// شهر و کشور مورد نظر خود را تعیین کنید
string city = "Tehran";
string country = "IR";
// ایجاد URL برای ارسال درخواست به OpenWeather API
string apiUrl = $"https://api.openweathermap.org/data/2.5/weather?q={city},{country}&appid={apiKey}";
// ایجاد یک شی HttpClient
using (HttpClient client = new HttpClient())
{
try
{
// ارسال درخواست GET به OpenWeather API و دریافت پاسخ
HttpResponseMessage response = await client.GetAsync(apiUrl);
// بررسی موفقیت درخواست
if (response.IsSuccessStatusCode)
{
// دریافت محتوای پاسخ به صورت رشته
string responseBody = await response.Content.ReadAsStringAsync();
// پردازش پاسخ JSON
// شما میتوانید از کتابخانه Newtonsoft.Json برای پردازش JSON استفاده کنید
// در اینجا مثالی از چگونگی استخراج یک فیلد از JSON نشان داده شده است
dynamic weatherData = Newtonsoft.Json.JsonConvert.DeserializeObject(responseBody);
string temperature = weatherData.main.temp;
Console.WriteLine($"دما در {city}، {country}: {temperature} کلوین");
}
else
{
Console.WriteLine($"خطا در دریافت پاسخ: {response.ReasonPhrase}");
}
}
catch (Exception ex)
{
Console.WriteLine($"خطا: {ex.Message}");
}
}
}
}
در این کد، شما باید YOUR_API_KEY را با کلید API واقعی خود از سرویس OpenWeather جایگزین کنی
همچنین، متغیرهای city و country را با شهر و کشور مورد نظر خود تنظیم کنی
پس از اجرای برنامه، درخواست GET به API ارسال میشه و پاسخ JSON پردازش میشه. در این مثال، دمای کلوین در شهر مورد نظر نمایش داده میشه
از طریق تغییر متغیرهای city و country میتونی اطلاعات هواشناسی برای شهرها و کشورهای دیگر را هم دریافت کنی
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟