You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 8中如何通过POST请求获取人脸识别API响应并存储?

解决POST请求获取人脸识别API响应的问题

嘿,我来帮你理清这个事儿~其实你可能误解了POST请求的作用:POST请求既可以发送数据,也完全能接收响应结果,和GET一样,只是请求方式不同而已。下面我针对你的代码一步步调整,让你能通过POST拿到识别结果并判断图像是否被识别:

1. 调整Service层:让方法返回Observable,把响应传递给Component

你当前的sendImage方法只是在内部订阅了POST请求,但没有把结果传递出去。修改成这样,让Component能订阅并获取响应:

sendImage(imgUrl): Observable<any> {
  console.log(imgUrl);
  const obj = { url: imgUrl };
  // 返回HTTP请求的Observable,让调用者(Component)处理响应
  return this.http.post(`${this.uri}`, obj);
}

2. 调整Node.js路由:转发Lambda API的响应给前端

你的路由现在只调用了recognizeImg,但没有处理它的返回结果,也没给前端返回响应。假设myFaceDetAPI.recognizeImg是调用Lambda API的异步方法,我们需要把Lambda的识别结果返回给前端:

facedetAPIRoutes.route("/").post(async function (req, res) {
  let imageUrl = req.body.url;
  try {
    // 等待Lambda API的识别结果(假设recognizeImg返回Promise)
    const recognitionResult = await myFaceDetAPI.recognizeImg(imageUrl);
    // 将Lambda的响应原样返回给前端
    res.status(200).json(recognitionResult);
  } catch (error) {
    // 处理请求失败的情况,返回错误信息
    res.status(500).json({ error: "请求人脸识别API失败:" + error.message });
  }
});

3. 调整Component:订阅响应并判断识别结果

现在你可以在handleImage里订阅sendImage的返回,根据Lambda API返回的结构判断图像是否被识别:

public handleImage(webcamImage: WebcamImage): void {
  console.info("received webcam image", webcamImage);
  this.webcamImage = webcamImage;
  const imageUrl = "http://localhost:4000/uploads/1570563000257-arnold4.jpg";
  
  // 订阅POST请求的响应
  this.fda.sendImage(imageUrl).subscribe({
    next: (recognitionRes) => {
      console.log("人脸识别API返回结果:", recognitionRes);
      // 这里根据Lambda API的返回结构判断,比如假设返回里有`isRecognized`或`matchedFace`字段
      if (recognitionRes.isRecognized) { // 替换成实际的判断字段
        console.log("✅ 图像已成功识别!");
        // 这里可以添加你的业务逻辑,比如弹出提示、跳转页面等
      } else {
        console.log("❌ 图像未被识别");
      }
    },
    error: (err) => {
      console.error("请求出错:", err);
    }
  });
}

核心说明

你之前的误区是觉得POST只能发数据,但实际上所有HTTP请求方法(GET/POST/PUT等)都可以同时发送请求数据和接收响应数据。POST的核心是向服务器提交数据,同时服务器自然会返回处理结果,这是标准的HTTP交互流程~

内容的提问来源于stack exchange,提问作者Roger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:50:17