当我使用特定图片网址调用postAsync时,我在json响应中看到以下错误。
“无效的图像URL或从目标服务器下载错误。返回远程服务器错误:”发送请求时出错。“”
以下是图片网址: http://localhost:3942/WebImages/201658211024test.jpg
以下是代码:
var uri = "https://api.projectoxford.ai/face/v1.0/detect?" + queryString;
string jsonbody = "{\"url\":\"" + imageUrl + "\"}";
byte[] byteData = Encoding.UTF8.GetBytes(jsonbody);
var content = new ByteArrayContent(byteData);
content.Headers.ContentType =
new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
string json = await response.Content.ReadAsStringAsync();
你能告诉我这是什么问题吗?
是因为图片网址末尾有格式类型吗?如果是这样,我该如何解决这个问题?
答案 0 :(得分:2)
当您使用指定的图像URL向Cognitive Service API发出请求时,您将指示在云中运行的服务从 位置加载图像。该服务无法找到您的 localhost,因此错误。
您有两种选择:(a)如果您的图片已在公共可访问网址上提供,请改用网址。如果您不确定网址是否可公开访问,请尝试在手机的浏览器中输入该网址。或者,(b)在HTTP请求正文中上传图像。您还需要将MediaTypeHeaderValue设置为application/octet-stream
。
如果您在Visual Studio中使用托管语言(如C#),请考虑使用NuGet包。这将为您处理细节。该NuGet包的源代码位于GitHub。