HOWTO · Go

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

Dieses Tutorial zeigt, wie Sie eine JSON-Zeichenfolge in einer POST-Anforderung in Go senden.

Auf dieser Seite

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