Manejo de solicitudes HTTP en Golang

Beginner

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

Introducción

Este laboratorio tiene como objetivo probar tu capacidad para utilizar el paquete net/http en Golang para emitir solicitudes HTTP.

Cliente HTTP

Se te pide escribir un programa que envíe una solicitud HTTP GET a un servidor y muestre el estado de la respuesta HTTP y las primeras 5 líneas del cuerpo de la respuesta.

  • El programa debe utilizar el paquete net/http para emitir una solicitud HTTP GET.
  • El programa debe mostrar el estado de la respuesta HTTP.
  • El programa debe mostrar las primeras 5 líneas del cuerpo de la respuesta.
  • El programa debe manejar los errores de manera adecuada.
$ go run http-clients.go
Estado de la respuesta: 200 OK
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Go by Example</title>

A continuación está el código completo:

// La biblioteca estándar de Go cuenta con un excelente soporte
// para clientes y servidores HTTP en el paquete `net/http`.
// En este ejemplo lo utilizaremos para emitir solicitudes HTTP
// simples.
package main

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

func main() {

    // Emitir una solicitud HTTP GET a un servidor. `http.Get` es
    // un atajo práctico para crear un objeto `http.Client`
    // y llamar a su método `Get`; utiliza el objeto
    // `http.DefaultClient` que tiene configuraciones por defecto
    // útiles.
    resp, err := http.Get("https://gobyexample.com")
    if err!= nil {
        panic(err)
    }
    defer resp.Body.Close()

    // Mostrar el estado de la respuesta HTTP.
    fmt.Println("Estado de la respuesta:", resp.Status)

    // Mostrar las primeras 5 líneas del cuerpo de la respuesta.
    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)
    }
}

Resumen

En este laboratorio, has aprendido cómo utilizar el paquete net/http en Golang para emitir solicitudes HTTP y manejar errores.