Avatar ·

كيفية تنفيذ طلب GET وجمع QueryString بشكل صحيح في Go؟

مرحباً بالجميع! أنا مبتدئ في Go وأحاول تنفيذ طلب GET إلى API يتطلب معاملات في سلسلة الاستعلام (query string). على سبيل المثال، أحتاج إلى إرسال طلب إلى `https://api.example.com/search?q=golang&page=1&limit=10`. لقد حاولت القيام بذلك يدوياً، بمجرد لصق السلسلة النصية، لكن هذا يبدو سيئاً وغير صحيح على ما يبدو: ```go package main import ( "fmt" "io/ioutil" "net/http" ) func main() { url := "https://api.example.com/search?q=" + "golang" + "&page=" + "1" + "&limit="10" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) } ``` أولاً، هذا غير آمن: إذا كان في المعامل `q` مسافات أو أحرف خاصة