【问题标题】:CustomVision API returns “Operation returned an invalid status code: 'Bad Request'”CustomVision API 返回“操作返回了无效的状态代码:'Bad Request'”
【发布时间】:2019-08-05 23:52:15
【问题描述】:

使用 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。

【问题讨论】:

    标签: c# azure-cognitive-services microsoft-custom-vision


    【解决方案1】:

    这里有两个项目要解决。

    您的特定“错误请求”

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

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

    这是我们从您给出的示例中所能提供的最多内容。但是还有一个其他的问题,将来会让你受益匪浅:“Bad Request”告诉你很多发生了什么。

    更多关于“错误请求”的一般信息

    如果您查看 HTTP status codes 内的范围,您会注意到“错误”范围内的模式。

    1. 4xx 中,请求者(您)做错了事,您可以改正。
    2. 5xx 中,响应者做错了事,而您无法更正它。

    在那之下:

    1. 404 Not Found 中,请求的格式似乎很好,但响应者找不到您所要求的内容
    2. 401 Unauthorized 中,您没有提供任何类型的身份
    3. 403 Forbidden 中,您确实提供了身份,但您无权执行此操作

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-17
        • 2021-03-08
        • 2019-10-09
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        相关资源
        最近更新 更多