Manipulação de Requisições HTTP em Golang

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este laboratório tem como objetivo testar sua capacidade de usar o pacote net/http em Golang para emitir requisições HTTP.

Cliente HTTP

Você deve escrever um programa que envia uma requisição HTTP GET para um servidor e imprime o status da resposta HTTP e as primeiras 5 linhas do corpo da resposta.

  • O programa deve usar o pacote net/http para emitir uma requisição HTTP GET.
  • O programa deve imprimir o status da resposta HTTP.
  • O programa deve imprimir as primeiras 5 linhas do corpo da resposta.
  • O programa deve tratar erros de forma adequada.
$ go run http-clients.go
Response status: 200 OK
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Go by Example</title>

Abaixo está o código completo:

// A biblioteca padrão do Go vem com excelente suporte
// para clientes e servidores HTTP no pacote `net/http`.
// Neste exemplo, vamos usá-lo para emitir requisições HTTP simples.
package main

import (
    "bufio"
    "fmt"
    "net/http"
)

func main() {

    // Emite uma requisição HTTP GET para um servidor. `http.Get` é um
    // atalho conveniente para criar um objeto `http.Client`
    // e chamar seu método `Get`; ele usa o
    // objeto `http.DefaultClient`, que possui configurações padrão úteis.
    resp, err := http.Get("https://gobyexample.com")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    // Imprime o status da resposta HTTP.
    fmt.Println("Response status:", resp.Status)

    // Imprime as primeiras 5 linhas do corpo da resposta.
    scanner := bufio.NewScanner(resp.Body)
    for i := 0; scanner.Scan() && i < 5; i++ {
        fmt.Println(scanner.Text())
    }

    if err := scanner.Err(); err != nil {
        panic(err)
    }
}

Resumo

Neste laboratório, você aprendeu como usar o pacote net/http em Golang para emitir requisições HTTP e tratar erros.