Senden einen JSON-String in einer POST-Anfrage in Go

Jay Singh 26 August 2022
  1. Senden einen JSON-String in einer POST-Anfrage in Go
  2. Senden einer JSON-Zeichenfolge in einer POST-Anfrage in Golang
Senden einen JSON-String in einer POST-Anfrage in Go

Die JavaScript Object Notation (JSON) ist ein häufig verwendetes Datenübertragungsformat in der Webentwicklung. Es ist einfach zu bedienen und zu verstehen.

Sie können eine JSON POST-Anfrage mit der Go-Sprache erstellen, aber Sie müssen mehrere Go-Pakete importieren. Das net/HTTP-Paket enthält eine gute HTTP-Client- und -Server-Unterstützung.

Das JSON-Paket in Go bietet auch JSON-Kodierung und -Dekodierung.

In diesem Lernprogramm erfahren Sie, wie Sie mit der Go-Sprache JSON-POST-Anforderungen ausführen. In diesem Tutorial erfahren Sie, wie Sie mit der Go-Sprache eine JSON-Zeichenfolge als POST-Anfrage übermitteln.

Senden einen JSON-String in einer POST-Anfrage in Go

Eine grundlegende JSON-Datei mit einer Liste von Kursen und Pfaden ist unten dargestellt.

{
    "Courses": [
        "Golang",
        "Python"
    ],
    "Paths": [
        "Coding Interviews",
        "Data Structure"
    ]
}

Der folgende Code zeigt, wie das USER-JSON-Objekt an den Dienst reqres.in gesendet wird, um eine Benutzeranforderung zu erstellen.

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)
    }
}

Ausgabe:

Response:  {
        "name":"Jay Singh",
        "job":"Golang Developer",
        "id":"895",
        "createdAt":"2022-04-04T10:46:36.892Z"
}

Senden einer JSON-Zeichenfolge in einer POST-Anfrage in Golang

Hier ist der einfache JSON-Code.

{
    "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)
        }

}

Ausgabe:

Response:  {
        "StudentName":"Deven Rathore",
        "StudentId":"170203065",
        "StudentGroup":"Computer Science",
        "id":"868",
        "createdAt":"2022-04-04T12:35:03.092Z"
}