Не получается ответ от метода HTTP Get - PullRequest
1 голос
/ 16 июня 2020

Реализован logi c в go для получения информации с заданного URL-адреса. Проблема в том, что ответ net / http пуст.

package main

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

func main() {
    resp, err := http.Get("https://azure.microsoft.com/en-us/")
    if err != nil {
        // handle error
    }
    body, err := ioutil.ReadAll(resp.Body)
    bodyString := string(body)
    fmt.Print(bodyString)
    fmt.Printf("%v %v", body, err)
}

Вывод: возвращается пустой фрагмент вместо возврата HTML содержимое

[]byte{} <nil>

Я использую Go версию 1.14.3.

1 Ответ

5 голосов
/ 16 июня 2020

Кажется, что работает, когда вы устанавливаете заголовок User-Agent:

package main

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

func main() {
    client := &http.Client{}
    req, err := http.NewRequest("GET", "https://azure.microsoft.com/en-us/", nil)
    req.Header.Add("User-Agent", "Mozilla")
    resp, err := client.Do(req)
    if err != nil {
        fmt.Println(err)
    }
    body, err := ioutil.ReadAll(resp.Body)
    bodyString := string(body)
    fmt.Print(bodyString)
}
...