Ответ
Да, можно. HTTP1.1 поддерживает передачу бинарных данных через тело запроса/ответа. Основные способы:
- Через тело запроса (POST/PUT):
data := []byte{0x48, 0x65, 0x6c, 0x6c, 0x6f}
req, _ := http.NewRequest("POST", url, bytes.NewReader(data))
- Через multipart/form-data:
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "data.bin")
part.Write([]byte{0x01, 0x02, 0x03})
- Base64 кодирование (если нужна текстовая передача):
encoded := base64.StdEncoding.EncodeToString([]byte{0x01, 0x02})
Важно правильно устанавливать Content-Type (например, application/octet-stream для бинарных данных). HTTP1.1 использует Transfer-Encoding: chunked для потоковой передачи больших бинарных данных.