使用localhost将POST请求发送到API

时间:2019-10-08 16:56:47

标签: javascript node.js api express unirest

我正在使用本地地址将图像发送到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);
});

我相信这一次只能在一个域上运行,但是我现在需要它才能进行测试。如何使用我的本地主机进行此项工作?

1 个答案:

答案 0 :(得分:2)

您尚未确切指定要连接的API,因此您的里程可能因不同的API而异。

但是,根据您的错误消息,我确定您正在尝试利用Lambda Face Recognition and Face Detection API via RapidAPI。该Web服务的(链接的)文档显然清楚地表明,您试图与上述urls URL一起使用的localhost参数实际上是用逗号分隔的可公开访问的图像文件的一组URL。在这种情况下,远程API可能无法解析localhost,因为(a)可能不知道IP localhost应该指的是什么,并且(b)您的{ {1}}不会响应来自更广泛的Internet的HTTP请求。

相反,修改您的请求以使用localhost参数(类型files)来上传图像的原始二进制数据。