我试图对Microsoft的表单识别器进行API调用,以根据自定义模型分析表单,但我不知道该怎么做。
这是关于API的文档
请求正文为空,我真的不知道如何格式化才能发送出去。
如果您看一下POST Train模型方法,我就能够使用该请求正文发送使该api调用生效的代码。这表明问题出在我身上,而不是API。
我通过命令行curl成功完成了此任务...
curl -X POST“ https://formrecognizerbp.cognitiveservices.azure.com/formrecognizer/v1.0-preview/custom/models/[MODEL ID] / analyze” -H“ Content-Type:multipart / form-data” -F“ form = @ \” C:\ Temp \ Capture1.jpg \“; type = image / jpeg“ -H” Ocp-Apim-Subscription-Key:[SUBSCRIPTION ID]“
我真的不知道/不知道如何将其转换为与POST Train Model方法具有相似格式的请求正文。
我一直收到此错误,因为我不知道如何正确格式化请求。
内部:意外错误Web API HTTP请求期间发生错误 HTTP状态码:400 HTTP响应内容:{“值”:{“错误”:{“代码”:“ BadRequest”,“消息”:“无法处理传入请求:“缺少内容类型边界。”。请确保其内容正确-格式。“}},”格式器“:[],” contentTypes“:[],” statusCode“:400}
所以我猜想格式化程序和contentTypes是缺少的部分,但是那仅仅是curl的文件路径和image / jpeg部分吗?
答案 0 :(得分:0)
/trainCustomModel API期望数据存在于Azure Blob存储中。该请求的请求主体需要包含指向培训数据的有效SAS URL。成功创建定制的经过训练的模型ID之后,就可以使用它来分析表单。 /AnalyzeWithCustomModel API希望数据位于本地文件存储中。请确保已正确替换了ModelId,API订阅密钥(注意,这与订阅ID不同)和图像的本地路径。
答案 1 :(得分:0)
问题是我没有意识到curl脚本使用image / jpeg覆盖了multipart / form-data Content-Type,并且当我尝试以不同方式构建此调用时,我强制使用multipart / form-data内容类型(关于jpeg)。