handle gzipped requests

This commit is contained in:
Kalle Carlbark 2024-08-20 13:38:20 +02:00
parent 13a4fe1c04
commit 9bcfa7a412
No known key found for this signature in database

11
main.go
View file

@ -1,6 +1,7 @@
package main
import (
"compress/gzip"
"flag"
"fmt"
"io"
@ -16,12 +17,18 @@ func requestHandler(w http.ResponseWriter, r *http.Request) {
fmt.Printf("%s %s from %s", r.Method, r.RequestURI, r.RemoteAddr)
if *body {
var requestbody []byte
r.Body = http.MaxBytesReader(w, r.Body, 1048576)
body, err := io.ReadAll(r.Body)
if r.Header.Get("Content-Encoding") == "gzip" {
gzipreader, _ := gzip.NewReader(r.Body)
requestbody, _ = io.ReadAll(gzipreader)
}
requestbody, err := io.ReadAll(r.Body)
if err != nil {
http.Error(w, "unable to read response", http.StatusBadRequest)
}
fmt.Printf("\n--- BODY ---\n%s\n", string(body))
fmt.Printf("\n--- BODY ---\n%s\n", string(requestbody))
}
if *header {