使用本地主机向 API 发送 POST 请求
Sending a POST request to API with localhost
我正在使用我的本地主机地址向 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);
});
我相信这将在域上运行一次,但我需要它现在运行以进行测试。我怎样才能使用我的本地主机来完成这项工作?
您没有明确指定 API 您要联系的对象,因此您的里程数可能会因 API 的不同而有所不同。
但是,根据您的错误消息,我确定您正在尝试利用 Lambda Face Recognition and Face Detection API via RapidAPI。此 Web 服务的(链接)文档 清楚地 表明您尝试与上面的 localhost
URL 一起使用的 urls
参数实际上是旨在将一组逗号分隔的 URLs 保存到可公开访问的图像文件。远程 API 不可能在这种情况下解析 localhost
,因为 (a) 它不可能知道 IP localhost
应该指的是什么,并且 (b) 它是高度您的 localhost
可能没有响应来自更广泛互联网的 HTTP 请求。
相反,修改您的请求以使用 files
参数(类型 binary
)上传图像的原始二进制数据。
我正在使用我的本地主机地址向 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);
});
我相信这将在域上运行一次,但我需要它现在运行以进行测试。我怎样才能使用我的本地主机来完成这项工作?
您没有明确指定 API 您要联系的对象,因此您的里程数可能会因 API 的不同而有所不同。
但是,根据您的错误消息,我确定您正在尝试利用 Lambda Face Recognition and Face Detection API via RapidAPI。此 Web 服务的(链接)文档 清楚地 表明您尝试与上面的 localhost
URL 一起使用的 urls
参数实际上是旨在将一组逗号分隔的 URLs 保存到可公开访问的图像文件。远程 API 不可能在这种情况下解析 localhost
,因为 (a) 它不可能知道 IP localhost
应该指的是什么,并且 (b) 它是高度您的 localhost
可能没有响应来自更广泛互联网的 HTTP 请求。
相反,修改您的请求以使用 files
参数(类型 binary
)上传图像的原始二进制数据。