Saltar al contenido

¿Cómo envío un JSON? string en una solicitud POST en Go

El tutorial o código que hallarás en este post es la solución más rápida y efectiva que hallamos a tu duda o problema.

Solución:

No estoy familiarizado con las siestas, pero usar Golang net/http el paquete funciona bien (parque infantil):

func main() 
    url := "http://restapi3.apiary.io/notes"
    fmt.Println("URL:>", url)

    var jsonStr = []byte(`"title":"Buy cheese and bread for breakfast."`)
    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
    req.Header.Set("X-Custom-Header", "myvalue")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client
    resp, err := client.Do(req)
    if err != nil 
        panic(err)
    
    defer resp.Body.Close()

    fmt.Println("response Status:", resp.Status)
    fmt.Println("response Headers:", resp.Header)
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))

solo puedes usar post para publicar tu json.

values := map[string]string"username": username, "password": password

jsonValue, _ := json.Marshal(values)

resp, err := http.Post(authAuthenticatorUrl, "application/json", bytes.NewBuffer(jsonValue))

Si ya tienes una estructura.

import (
    "bytes"
    "encoding/json"
    "io"
    "net/http"
    "os"
)

// .....

type Student struct 
    Name    string `json:"name"`
    Address string `json:"address"`


// .....

body := &Student
    Name:    "abc",
    Address: "xyz",


payloadBuf := new(bytes.Buffer)
json.NewEncoder(payloadBuf).Encode(body)
req, _ := http.NewRequest("POST", url, payloadBuf)

client := &http.Client
res, e := client.Do(req)
if e != nil 
    return e


defer res.Body.Close()

fmt.Println("response Status:", res.Status)
// Print the body to the stdout
io.Copy(os.Stdout, res.Body)

Esencia completa.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *