Отправка POST-запроса в API с помощью localhost - PullRequest
0 голосов
/ 08 октября 2019

Я отправляю изображение в API, используя мой локальный адрес, но по какой-то причине оно не идентифицирует изображение. Это работает нормально, если я использую ссылки на Google. Код выглядит примерно так:

unirest.post(requestString)
   .header("X-RapidAPI-Key", API_KEY)
   .field("urls", "http://localhost:4000/uploads/1570544614486-test.jpg")
   .field("album", ALBUM_NAME)
   .field("albumkey", ALBUM_KEY)
   .field("entryid", entryId)
   .end(result => {
       console.log(result.body);
});

Я полагаю, что это будет работать однажды на домене, но мне нужно, чтобы он работал сейчас для тестирования. Как я могу заставить это работать, используя мой localhost?

1 Ответ

2 голосов
/ 08 октября 2019

Вы точно не указали, к какому API вы обращаетесь, поэтому ваш пробег может варьироваться в зависимости от API.

Однако, исходя из вашего сообщения об ошибке, я определил, что вы пытаетесьиспользовать API-интерфейс Lambda Face Recognition и Detection Face через RapidAPI . Эти (связанные) документы для этой веб-службы явно показывают, что параметр urls, который вы пытаетесь использовать с указанным выше URL-адресом localhost, фактически предназначен для хранения набора разделенных запятыми URL-адресов для публичного доступа. -доступные файлы изображений. Удаленный API не может разрешить localhost в этом контексте, потому что (a) он не может иметь никакого представления о том, на что должен ссылаться IP localhost, и (b) весьма вероятно, что ваш localhost здесь нене отвечайте на запросы HTTP из более широкого Интернета.

Вместо этого измените ваш запрос, чтобы использовать параметр files (введите binary) для загрузки необработанных двоичных данных для ваших изображений.

...