Как преобразовать curl data-binary в тело HTTP в реагировать на родную выборку? - PullRequest
0 голосов
/ 14 января 2020

Я могу получить результаты с помощью curl -X POST -u "apikey:x" --header "Content-Type: audio/flac" --data-binary @/Users/xx/Downloads/audio-file.flac "https://apixxx".

Но в оригинальном реагировании ниже будет выдано сообщение об ошибке «Ошибка 400 неверных запросов: поток был 36 байтов, но должен быть не менее 100 байтов». - по-видимому, он взял "тело", которое я поставил как строку, а не как двоичный файл. Как это исправить пожалуйста? Спасибо!

 window.btoa = require('Base64').btoa;
    let result = await fetch(
      'https://apixxx' , {
        method: 'POST',
        headers: {
          'Content-Type': 'audio/flac',
          'Authorization': 'Basic '+btoa(`apikey:x`)
        },
        body: JSON.stringify({
          'data-binary': '@./audio-file.flac',
        }),
      }
    ).then(response => response.json());

Затем я попробовал другую версию с formdata, выдает ошибку: «Неверный запрос», код: 400, ошибка: «Нет JSON объект может быть декодирован»

    window.btoa = require('Base64').btoa;
      const formData = new FormData()
      formData.append('file', {
        uri: `file://${RNFS.DocumentDirectoryPath}/audio-file.flac`,
        name: 'audio-file.flac',
        type: 'audio/flac',
      })
        let res = await fetch('https://apixxx', {
            method: 'POST',
            headers: {
              'Content-Type': 'multipart/form-data',
              'Authorization': 'Basic '+btoa(`apikey:x`),
            },
            body: formData,
          }).then(response => console.log(response.json()));

Как это исправить пожалуйста? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...