Enviar una cadena JSON en una solicitud POST en Go
- Enviar una cadena JSON en una solicitud POST en Go
- Envío de una cadena JSON en una solicitud POST en Golang
La notación de objetos de JavaScript (JSON) es un formato de transmisión de datos de uso común en el desarrollo web. Es simple de usar y entender.
Puede crear una solicitud JSON POST
con el lenguaje Go, pero necesita importar varios paquetes Go. El paquete net/HTTP
incluye un buen soporte de servidor y cliente HTTP.
El paquete JSON
en Go también proporciona codificación y decodificación JSON.
En este tutorial, aprenderá a usar el lenguaje Go para realizar solicitudes JSON POST. En este tutorial, aprenderá a usar el lenguaje Go para entregar una cadena JSON como una solicitud POST.
Enviar una cadena JSON en una solicitud POST en Go
A continuación se muestra un archivo JSON básico que contiene una lista de cursos y rutas.
{
"Courses": [
"Golang",
"Python"
],
"Paths": [
"Coding Interviews",
"Data Structure"
]
}
El siguiente código muestra cómo enviar el objeto USER JSON al servicio reqres.in
para construir una solicitud de usuario.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type User struct {
Name string `json:"name"`
Job string `json:"job"`
}
func main(){
user := User{
Name: "Jay Singh",
Job: "Golang Developer",
}
body, _ := json.Marshal(user)
resp, err := http.Post("https://reqres.in/api/users", "application/json", bytes.NewBuffer(body) )
if err != nil {
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode == http.StatusCreated {
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
jsonStr := string(body)
fmt.Println("Response: ", jsonStr)
} else {
fmt.Println("Get failed with error: ", resp.Status)
}
}
Producción :
Response: {
"name":"Jay Singh",
"job":"Golang Developer",
"id":"895",
"createdAt":"2022-04-04T10:46:36.892Z"
}
Envío de una cadena JSON en una solicitud POST en Golang
Aquí está el código JSON simple.
{
"StudentName": "Jay Singh",
"StudentId" : "192865782",
"StudentGroup": "Computer Science"
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type StudentDetails struct {
StudentName string `json:"StudentName"`
StudentId string `json:"StudentId"`
StudentGroup string `json:"StudentGroup"`
}
func main() {
studentDetails := StudentDetails{
StudentName: "Jay Singh",
StudentId: "192865782",
StudentGroup: "Computer Science",
}
body, _ := json.Marshal(studentDetails)
resp, err := http.Post("<https://reqres.in/api/users>", "application/json", bytes.NewBuffer(body))
if err != nil {
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode == http.StatusCreated {
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
jsonStr := string(body)
fmt.Println("Response: ", jsonStr)
} else {
fmt.Println("Get failed with error: ", resp.Status)
}
}
Producción :
Response: {
"StudentName":"Deven Rathore",
"StudentId":"170203065",
"StudentGroup":"Computer Science",
"id":"868",
"createdAt":"2022-04-04T12:35:03.092Z"
}