如何在请求js中接收和处理二进制数据

时间:2019-07-14 00:40:12

标签: javascript python ajax flask request

因此,我尝试与API进行交互,并且其中一种方法应该返回图像。我正在使用request。我没有提供有关该API的任何文档,但可以访问flask中的请求代码,该代码类似于以下内容:

@app.route('/get/image', methods=['POST'])
def send_image():
    ...
    response = make_response(image_binary)
    response.headers.set('Content-Type', 'image/png')
    response.headers.set('Content-Disposition', 'attachment', id=docs[0]['_id'])

    return response

基本上,应该有一个二进制图像和一些元数据。但是,当使用请求库访问API时,我真的不知道如何获取二进制和元数据。这是我目前正在尝试的示例:

  const request = require('request');
  requestOptions = {
    headers: {
      'Content-Disposition': 'attachment',
      'Content-Type': 'image/png'     
    },
    uri:'http://api_url.com:5000/get/image',
    encoding:null
  }
  request.post(
    requestOptions,
    {  },//it doesnt look like it requires any data???
    function (error, response, body) {
      console.log(response)
      console.log(body)
    }
  );

考虑到缺少文档,获取图像及其元数据的正确方法是什么?

更新:我能够使它与axios一起使用。

axios.post('http://api_url.com:5000/get/image', {})
  .then((response) => {
    var img = new Buffer(response.data, 'binary').toString('base64');
    res.send(img)
  })
  .catch(function (error) {
    console.log(error);
  });

但是多数民众赞成在axios,而不是要求。因此,它并不能真正回答问题。

0 个答案:

没有答案