我正在尝试通过根据文档传递多个图像并使用 来调用 Microsoft Cognitive API multipart/form-data
,但是我收到一条错误消息,指出“不支持的媒体类型”。我试图同时使用ByteArray
和StreamContent
。
private static byte[] GetImageAsByteArray(Stream fileStream)
{
using (var binaryReader = new BinaryReader(fileStream))
{
return binaryReader.ReadBytes((int)fileStream.Length);
}
}
static void Main(string[] args)
{
var uriBase = "https://westus.api.cognitive.microsoft.com/vision/v1.0/recognizeText";
var subscriptionKey = "<subscriptionKey>";
var client = new HttpClient();
var uri = string.Concat(uriBase, "?", "language=en&detectOrientation=true");
var images = new List<Stream>();
var img = Image.FromStream(File.Open("<imageName>", FileMode.Open));
var stream = new MemoryStream();
img.Save(stream, ImageFormat.Bmp);
stream.Position = 0;
images.Add(stream);
using (var content = new MultipartFormDataContent())
{
foreach (var image in images)
{
//content.Add(new StreamContent(stream));
content.Add(new ByteArrayContent(GetImageAsByteArray(image)));
}
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
content.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");
var response = client.PostAsync(uri, content).Result;
}
}
我试图通过根据文档传递多个图像并使用 multipart/form-data来调用 Microsoft Cognitive API ,但我收到一个错误消息,指出“不支持的媒体类型”。
It is not possible to send multiple images, regardless of header.
请参阅文档第 2 步,它提到:
执行计算机视觉 API 调用的基本方法是直接上传图像。这是通过发送带有application/octet-stream内容类型的“POST”请求以及从image读取的数据来完成的。
示例代码可以在这里找到
测试环境在这里。请注意,无论标题如何,它仍然发送 1 个图像。限制还提到了单个图像。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句