Microsoft Azure人脸API-人脸检测(无结果)
在使用FaceAPIv1.0的FaceDetect服务时,我没有遇到错误,但也没有结果。我正在研究c。 API密钥有效,并在其他代码上显示结果 感谢您的帮助。提前谢谢Microsoft Azure人脸API-人脸检测(无结果),azure,microsoft-cognitive,face-api,Azure,Microsoft Cognitive,Face Api,在使用FaceAPIv1.0的FaceDetect服务时,我没有遇到错误,但也没有结果。我正在研究c。 API密钥有效,并在其他代码上显示结果 感谢您的帮助。提前谢谢 Code is as follows: using System; using System.Net.Http.Headers; using System.Text; using System.Net.Http; using System.Web; namespace CSHttpClientSample { static c
Code is as follows:
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "9b0bd0ce75d040769834af2339b93e1d");
// Request parameters
queryString["returnFaceId"] = "true";
queryString["returnFaceLandmarks"] = "false";
queryString["returnFaceAttributes"] = "Age";
//var uri = "https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect" + queryString;
var uri = "https://eastasia.api.cognitive.microsoft.com/face/v1.0/detect" + queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("https://i.kinja-img.com/gawker-media/image/upload/s--0MPvwvU0--/c_scale,f_auto,fl_progressive,q_80,w...");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
}
}
}
}
正如evilsnobu提到的,如果您想要得到响应,您需要返回MakeRequest结果 如果要使用web图像资源,需要将其url添加为帖子正文 请尝试使用以下代码以获得预期结果
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
static void Main(string[] args)
{
var response = MakeRequest().Result;
var content = response.Content.ReadAsStringAsync().Result
}
static async Task<HttpResponseMessage> MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "your key");
// Request parameters
queryString["returnFaceId"] = "true";
queryString["returnFaceLandmarks"] = "false";
queryString["returnFaceAttributes"] = "Age";
var uri = "https://eastasia.api.cognitive.microsoft.com/face/v1.0/detect?" + queryString; //add ? before query string
var data = new JObject
{
["url"] =
"https://docs.microsoft.com/en-us/azure/cognitive-services/face/images/facefindsimilar.queryface.jpg"
};
var json = JsonConvert.SerializeObject(data);
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(uri, stringContent);
return response;
}
FaceID是一个数组,请尝试使用以下代码:
var jArray = new JArray
{
"cd920c85-d05e-46e2-bb9e-2b0f67024ba2",
"56001f6e-6c48-4a9d-800d-3cc693001197",
"2ae34ecc-eb17-4260-a385-0db699ee17c4"
};
var data = new JObject
{
["faceIds"] = jArray
};
var json = JsonConvert.SerializeObject(data);
结果显示了什么?另外,不要在论坛中发布订阅密钥,只需替换为一条示例文本,您不需要等待MakeRequest呼叫。更糟糕的是,您没有从MakeRequest返回任何内容。不确定您期望的是什么。我期望代码能够检测请求正文中提供的图像中的人脸。非常感谢。目前尚未取得任何成果。我收到一个输出“程序”[5164]july26.exe“已退出,代码为0 0x0”。@AfshanAnwarAli。您可以直接使用我的代码进行测试,请在代码中替换Ocp Apim订阅密钥值。我使用的代码与我的“密钥”和项目名称“namespace July26”完全一致。其次,您的端点是?而我的呢?没有发现。这有关系吗?@AfshanAnwarAli。根据我的测试,需要检测
var jArray = new JArray
{
"cd920c85-d05e-46e2-bb9e-2b0f67024ba2",
"56001f6e-6c48-4a9d-800d-3cc693001197",
"2ae34ecc-eb17-4260-a385-0db699ee17c4"
};
var data = new JObject
{
["faceIds"] = jArray
};
var json = JsonConvert.SerializeObject(data);