كيفية تعيين مهلة زمنية لـ http.Get() في Golang؟
مرحبًا بالجميع! أنا مبتدئ في Go وواجهت مشكلة عند تنفيذ طلبات HTTP.
أحتاج إلى إرسال طلبات GET إلى API خارجي، لكن أحيانًا يتجمد الخادم أو يستجيب ببطء شديد. في المثال القياسي من التوثيق، أستخدم `http.Get()`، وهو يتجمد إلى الأبد، مما يعطل البرنامج بأكمله. إليك الكود الخاص بي:
```go
resp, err := http.Get("https://api.example.com/data")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
```
المشكلة هي أنه إذا لم يستجب الخادم، يتجمد البرنامج إلى الأبد. أريد تعيين مهلة زمنية، مثل 5 ثوانٍ، بحيث في حالة عدم وجود استجابة، يُصدر البرنامج خطأ ويواصل العمل.
حاولت البحث في التوثيق، لكنني لم أجد طريقة بسيطة لإضافة مهلة زمنية إلى `http.Get()`. رأيت شيئًا عن `http.Client`، لكنني لم أفهم كيفية تطبيقه بشكل صحيح.
أرجو إرشادي حول كيفية تنفيذ مهلة زمنية لطلبات HTTP في Go بشكل صحيح؟ هل أحتاج إلى إنشاء client منفصل أم هناك طريقة لتمرير المهلة الزمنية مباشرة إلى `Get()`؟ كما أنني مهتم بكيفية معالجة