Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencuba Semula Permintaan HTTP yang Gagal dalam Go?

Bagaimana untuk Mencuba Semula Permintaan HTTP yang Gagal dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-10-30 20:58:30285semak imbas

How to Retry Failed HTTP Requests in Go?

Mencuba Semula Permintaan HTTP yang Gagal dalam Go

Apabila cuba menolak data ke pelayan Apache menggunakan GoLang dan menghadapi ralat, adalah penting untuk dipertimbangkan sama ada permintaan HTTP akan mencuba semula secara automatik. Jawapan kepada soalan ini adalah negatif, bermakna anda mesti melaksanakan mekanisme cuba semula tersuai.

Dalam kod yang disediakan, anda menggunakan kaedah http.DefaultClient.Do untuk melaksanakan permintaan. Kaedah ini tidak mengendalikan percubaan semula secara automatik sekiranya pelayan tidak tersedia atau ralat lain. Untuk menggabungkan logik cuba semula, anda boleh menggunakan pendekatan tersuai seperti yang ditunjukkan dalam contoh berikut:

<code class="go">package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "time"
)

func main() {
    var (
        err      error
        response *http.Response
        retries  int = 3
    )
    for retries > 0 {
        response, err = http.Get("https://non-existent")
        // Change the URL to "https://google.com/robots.txt" for testing
        if err != nil {
            log.Println(err)
            time.Sleep(2 * time.Second) // Introduce a delay between retries
            retries -= 1
            continue
        } else {
            break
        }
    }

    if response != nil {
        defer response.Body.Close()
        data, err := ioutil.ReadAll(response.Body)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("data = %s\n", data)
    }
}</code>

Dalam contoh ini, fungsi masa.Tidur telah digunakan untuk memperkenalkan kelewatan antara percubaan semula. Anda boleh melaraskan kelewatan berdasarkan keperluan khusus permohonan anda. Ingat untuk mengendalikan sebarang pengecualian atau ralat yang mungkin berlaku semasa proses percubaan semula, memastikan kestabilan dan kebolehpercayaan pemindahan data anda.

Atas ialah kandungan terperinci Bagaimana untuk Mencuba Semula Permintaan HTTP yang Gagal dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn