To handle MIME-encoded HTTP requests with JSON data in Go, you can use the net/http
package along with the encoding/json
package for JSON decoding. Here's an example of how you can handle MIME-encoded POST requests with JSON data in Go.
First, define a struct that represents your JSON data. For example:
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
Then, create an HTTP handler function to handle the requests:
func handlePostRequest(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// Set the content type header to JSON
w.Header().Set("Content-Type", "application/json")
// Decode the JSON data from the request body into the struct
var user User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, "Bad request", http.StatusBadRequest)
return
}
// Do something with the user data
// ...
// Send a JSON response
json.NewEncoder(w).Encode(user)
}
In your main function, create an HTTP server and register the handler:
func main() {
http.HandleFunc("/user", handlePostRequest)
http.ListenAndServe(":8080", nil)
}
Now, when you send a POST request to /user
with the appropriate JSON data, the server will decode the JSON and you can handle the data as desired.