Sobes.tech
Senior

Yaxşı, onda sorğuda dəqiq nə dəyişdi?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da HTTP sorğusunda edilən dəyişikliklər ümumiyyətlə aşağıdakıları əhatə edə bilər:

  • Başlıqları əlavə etmək və ya dəyişdirmək (məsələn, Authorization, Content-Type).
  • İptal və ya vaxt aşımını dəstəkləmək üçün kontekst (http.NewRequestWithContext) istifadə etmək.
  • Sorğu metodunu dəyişdirmək (GET, POST, PUT və s.).
  • Sorğunun gövdəsində dəyişikliklər etmək (məsələn, JSON və ya forma əlavə etmək).

Kontekst və başlıq əlavə etməklə sorğunu dəyişdirmə nümunəsi:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

req, err := http.NewRequestWithContext(ctx, "POST", "https://api.example.com/send", bytes.NewBuffer(jsonData))
if err != nil {
    log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer token")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

Beləliklə, konkret dəyişikliklər vəzifədən asılıdır, amma ümumiyyətlə sorğu üzərində nəzarəti yaxşılaşdırır, lazım olan başlıqları əlavə edir və vaxtın düzgün idarə olunmasını təmin edir.