HTTP-запрос автоматически повторяется? - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь отправить свои данные на сервер Apache, используя GoLang.Предположим, мой сервер Apache временно остановлен.Тогда мой http запрос будет повторен автоматически.Я использую это утверждение

resp, err := http.DefaultClient.Do(req)
    if err != nil {
        return errors.Wrap(err, "http request error")
    }

Я не могу продолжить, потому что, как мне кажется, мое исполнение застряло здесь.И я неоднократно получаю эту ошибку.

1 Ответ

0 голосов
/ 04 июня 2018

Нет, вам нужно будет реализовать собственный метод повтора, это базовый пример, который может дать вам представление:

https://play.golang.org/p/_o5AgePDEXq

package main

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

func main() {
    var (
        err      error
        response *http.Response
        retries  int = 3
    )
    for retries > 0 {
        response, err = http.Get("https://non-existent")
        // response, err = http.Get("https://google.com/robots.txt")
        if err != nil {
            log.Println(err)
            retries -= 1
        } 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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...