Как сделать запрос javascript (супертест, суперагент), который ведет себя как curl --data-binary

тл;др; Отправка ниже curl работает, но я не могу сделать то же самое в супертесте (что обернуть superagent https://github.com/visionmedia/superagent/)

curl 'http://local/api/items' -X DELETE -H 'Accept-Encoding: gzip, deflate' -H 'content-type: application/json;charset=UTF-8' --data-binary '"1234"'

Я могу удалить элемент из веб-интерфейса, куда я прикрепляю файл с требуемым текстом.
Затем с помощью инструментов разработчика я извлек команду curl, представленную выше, и это работает как шарм.
Как выполнить ее в js?
Пробовал :

const response = yield request('http://local')
      .delete('/api/items')     
      .set('Accept-Encoding', 'gzip, deflate')    
      .set('Content-Type', 'application/json;charset=UTF-8')
      .send("1234");

Затем я получаю "status":400,"error":"BodyNotReadable",
Возможно, использование write может быть ответом, но я не знаю, как это сделать.
Полный список доступных вариантов https://github.com/visionmedia/superagent/blob/master/lib/node/index.js


person pbaranski    schedule 30.09.2017    source источник


Ответы (2)


Пытаться:

request
  .delete('http://url/')
  .set('Accept-Encoding', 'gzip, deflate')
  .set('Content-Type', 'application/json;charset=UTF-8')
  .send(JSON.stringify(body))
  .type('json')
  .then(response => {
      console.log(response)
  })
  .catch(error => {
      console.log(error)
  });

Ключ в том, чтобы JSON.stringify полезную нагрузку вы хотите отправить. Должно сработать.

person Daniel    schedule 04.10.2017

Можете ли вы попробовать это, пожалуйста:

request('http://local')
  .delete('/api/items')
  .set('Accept-Encoding', 'gzip, deflate')
  .set('Content-Type', 'application/json;charset=UTF-8')
  .write("1234")
  .end((err, res) => {
    // Get response here
  });
person Arkerone    schedule 30.09.2017
comment
получил `TypeError: request(...).delete(...).set(...).set(...).write(...).end не является функцией` - person pbaranski; 02.10.2017
comment
Подскажите, пожалуйста, какая у вас версия суперагента? - person Arkerone; 02.10.2017
comment
v: Суперагент 3.5 - person pbaranski; 02.10.2017
comment
можете ли вы проверить request.del('local/api/items', '1234', (ошибка, разрешение) =› { // здесь получаем ответ }).set('Accept-Encoding', 'gzip, deflate') .set('Content-Type', 'application/json;charset=UTF-8'); - person Arkerone; 02.10.2017