我正在编写一个使用Azure - Computer Vision的.Net Core Web应用程序。
我正在做这里显示的所有事情:
我的问题是:
Computer Vision API结果:
{“ statusCode”:401,“ message”:“由于无效的订阅密钥而拒绝访问。请确保为有效的订阅提供有效的密钥。 }
我不知道怎么了。我有合适的关键和正确的终点。我还检查了这里所有的东西:
这是我的代码:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// TODO: Change this to your image's path on your site.
string imagePath = @"images/family.jpg";
// Enable static files such as image files.
app.UseStaticFiles();
string visionApiKey = "71a481e3473440d18c586a038365bd79";
string visionApiEndPoint = "ComputerVisionAPI_ServiceEndPoint";
HttpClient client = new HttpClient();
// Request headers.
// client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", visionApiKey);
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "71a481e3473440d18c586a038365bd79");
// Request parameters. A third optional parameter is "details".
string requestParameters = "visualFeatures=Categories,Description,Color&language=en";
// Assemble the URI for the REST API Call.
// string uri = visionApiEndPoint + "/analyze" + "?" + requestParameters;
string uri = "https://westus.api.cognitive.microsoft.com/vision/v1.0" + "/analyze" + "?" + requestParameters;
HttpResponseMessage response;
// Request body. Posts an image you've added to your site's images folder.
var fileInfo = env.WebRootFileProvider.GetFileInfo(imagePath);
byte[] byteData = GetImageAsByteArray(fileInfo.PhysicalPath);
string contentString = string.Empty;
using (ByteArrayContent content = new ByteArrayContent(byteData))
{
// This example uses content type "application/octet-stream".
// The other content types you can use are "application/json" and "multipart/form-data".
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
// Execute the REST API call.
response = client.PostAsync(uri, content).Result;
// Get the JSON response.
contentString = response.Content.ReadAsStringAsync().Result;
}
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync("<h1>Cognitive Services Demo</h1>");
await context.Response.WriteAsync($"<p><b>Test Image:</b></p>");
await context.Response.WriteAsync($"<div><img src=\"" + imagePath + "\" /></div>");
await context.Response.WriteAsync($"<p><b>Computer Vision API results:</b></p>");
await context.Response.WriteAsync("<p>");
await context.Response.WriteAsync(JsonPrettyPrint(contentString));
await context.Response.WriteAsync("<p>");
});
}
答案 0 :(得分:1)