🥇 Clientes HTTP, Uso del http.Client.

Para tener control mas acanzado de las peticiones HTTP, podemos echar mano del cliente provisto por Go. Este se encuentra dentro del paquete net/http, en el cual las configuraciones por default son aplicadas pero pueden sobreescribirse.

client := &http.Client{}
request, err := http.NewRequest("POST", "https://httpbin.org/post", nil)
response, err := client.Do(request)
defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body)
fmt.Printf("%s", body)

En forma conjunta el script luciría así.

package main

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

func main() {
    client := &http.Client{}
    request, err := http.NewRequest("POST", "https://httpbin.org/post", nil)
    if err != nil {
        log.Fatal(err)
    }
    response, err := client.Do(request)
    if err != nil {
        log.Fatal(err)
    }
    defer response.Body.Close()
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%s", body)
}

Si ejecutamos el programa, obtendríamos algo asi…

$ go run .../main.go
{
  "args": {},
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept-Encoding": "gzip",
    "Content-Length": "0",
    "Host": "httpbin.org",
    "User-Agent": "Go-http-client/1.1"
  },
  "json": null,
  "origin": "..., ...",
  "url": "https://httpbin.org/post"
}
Clientes HTTP, Peticiones mediante POST Clientes HTTP, Client Timeout.
comments powered by Disqus