Angular Post Binary Data - PullRequest
       2

Angular Post Binary Data

0 голосов
/ 15 октября 2018

Я пытаюсь опубликовать двоичные данные, используя следующий код:

let headers = new Headers()
headers.append('Content-Type', 'application/json')

this.http.post("http://localhost:8080/api/load",
    requestBytes,
    {
      headers: headers
    }).subscribe((data) => {
        console.log("success!!!")
    })

requestBytes относится к типу Uint8Array

Полезная нагрузка запроса выглядит следующим образом

{
   "0": 10,
   "1": 1,
   "2": 49
}

Как вы можете видеть, это кажется диктатом, в то время как я ожидал, что это будет байтовый массив.Это вызывает путаницу на сервере.

Я попытался изменить Content-Type на application/octet-stream и передать buffer вместо массива, но это тоже не помогло.В этом случае полезная нагрузка оказывается пустой.

1 Ответ

0 голосов
/ 15 октября 2018

Пришлось вручную создать запрос, используя XMLHttpRequest.

Окончательный код выглядит примерно так:

const httpRequest = new XMLHttpRequest()
httpRequest.open('POST', 'http://localhost:8080/api/restaurant/load', true)
httpRequest.responseType = "arraybuffer"
httpRequest.send(requestBytes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...