0

像这样使用 CustomVisionPredictionClient 时出现此错误:

var predictionApi = new CustomVisionPredictionClient()
{
    ApiKey = _predictionKey,
    Endpoint = "https://westeurope.api.cognitive.microsoft.com"
};
var result = await predictionApi.ClassifyImageAsync(project.Id, _modelName, imageData);
  • 项目/项目 id 是通过培训 API 检索的,我可以在上面调用 GetProjects() 没有问题。它应该是正确的,如果我把它改成错误的,我会得到一个“未找到”的异常。
  • _modelName 是迭代的发布名称(“xxxRecognition”,见下面的截图),它也应该是正确的,当我更改它时,我得到“找不到”。
  • imageData 只是来自 PNG 图像的 FileStream。

在此处输入图像描述

4

2 回答 2

0

这里有两个项目要解决。

您特定的“错误请求”

具体来说,您的示例有一个或多个您没有真正包含的问题。

  1. 格式_modelName不正确
  2. 格式imageData不正确
  3. 某些配置(可能是请求标头)丢失或不正确

从您给出的示例中,这大约是我们可以提供的最多内容。但是还有一个对你未来有很大好处的问题:“Bad Request”告诉你很多关于发生了什么的事情。

有关“错误请求”的更多信息

如果您查看HTTP 状态代码中的范围,您会注意到“错误”范围中的模式。

  1. 4xx请求者(你)做错了什么,你可以纠正它。
  2. 5xx响应者做错了什么,你不能纠正它。

在这之下:

  1. 看起来请求形成得很好,404 Not Found但响应者找不到你所要求的
  2. 因为401 Unauthorized你没有提供任何身份
  3. 403 Forbidden确实提供了身份,但不允许您执行此操作

但是在400 Bad Request响应者根本无法验证您的请求是否是好的输入这意味着您可以再次查看 API 文档,将其与您的实现进行比较,然后再试一次。

于 2019-08-03T16:59:22.497 回答
0

问题是我创建了一个“对象检测”类型的项目并尝试将它与必须与“分类”类型项目一起使用的 ClassifyImage() 一起使用。所以我必须改用 DetectImage() 。:)

于 2019-08-05T15:52:15.790 回答