создать буфер массив, содержащий некоторые данные:Отправка двоичных данных на сервер
var myArray = new ArrayBuffer(512);
var longInt8View = new Uint8Array(myArray);
for (var i = 0; i < longInt8View.length; i++) {
longInt8View[i] = i % 255;
}
И я посылаю его поэтому сервер с помощью POST:
if (window.XMLHttpRequest) {
var xmlhttp = new XMLHttpRequest();
} else {
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
action(xmlhttp.responseText);
}
};
xmlhttp.open("POST", 'http://somedomain.com:8080', true);
xmlhttp.send(myArray);
var action = function (response) {
console.log(response);
};
Теперь я хочу, чтобы получить эти двоичные данные в пойти код и сделать с ним что-то. Как я могу это сделать?
package main
import (
"fmt"
"net/http"
)
func handleRequest(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Headers", "*")
w.Header().Set("Content-Type", "text/plain")
fmt.Fprintf(w, "%s", r.Body)
}
func main() {
http.HandleFunc("/", handleRequest)
http.ListenAndServe(":8080", nil)
}
Я вижу ссылку на блок памяти внутри тела, но как я могу получить это specificaly?
тело запроса является [ 'io.Reader'] (https://golang.org/pkg/io/#Reader), вы прочитайте его. (на самом деле это 'io.ReadCloser', но вам не нужно закрывать его на сервере) – JimB