Как получить изображение из колбы API в реагировать родной - PullRequest
0 голосов
/ 03 июля 2019

Я отправляю изображение, используя колбу, чтобы реагировать на натив, я получаю «200 OK», если я использую почтальон, и я также вижу изображение, но когда я использую реагировать нативный, чтобы получить изображение и отобразить его на экранеЯ получаю «Неожиданный токен ошибки � в JSON в позиции 0».

вот код:

  fetch("http://10.0.2.2:5000/api/echo", {
  method: "POST",
  headers: {
    Accept: "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    x: 0,
    y: 0
  })
})
  .then(response => response.text())
  .then(responseJson => {
    console.log(JSON.parse(responseJson));
  })
  .catch(error => {
    console.error(error);
  });
};

Я не знаю, что именно я должен написать в .then (),Я попробовал пару решений, которые нашел в интернете, но ни одно из них не сработало.

вот код колбы:

@app.route('/api/echo', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():
  while(True):
    data = request.get_json()
    img = plt.imread('mapflask.png')
    plt.figure()
    plt.imshow(img)
    plt.scatter(100, 20, s=30, c='red', marker='o')
    plt.scatter(30, 40, s=30, c='blue', marker='o')
    plt.axis('off')
    plt.savefig("test100.png", transparent=True,
                bbox_inches='tight', dpi=150)

    filename = 'test100.png'
    return send_file(filename, mimetype='image/jpg')

1 Ответ

0 голосов
/ 03 июля 2019

Вы отправляете изображение в ответ и принимаете application/json в ответ.

вы должны сделать что-то вроде этого: -

var image
  fetch("http://10.0.2.2:5000/api/echo", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    x: 0,
    y: 0
  })
})
  .then(response => response.blob())
  .then(images => {
      // Then create a local URL for that image and print it 
      image = URL.createObjectURL(images)
      console.log(image)
  })  .catch(error => {
    console.error(error);
  });
}; 
...