我正在尝试从Microsoft网站调用Face API,我在他们的网站上找到了示例代码。在他们的代码中,他们使用"Detect API"
作为示例,但我想测试"Create Face List"
API。我弄清楚我需要将“内容类型”从“application / octet-stream”更改为“application / json”并填写“Json字段”。不幸的是,我是调用API方面的新手。
希望你们能帮忙解决这个问题。
Here是示例代码的链接。
而here是“创建面部列表”API的链接。
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 = await client.PostAsync(uri, content);
// Get the JSON response.
string contentString = await response.Content.ReadAsStringAsync();
// Display the JSON response.
Console.WriteLine("\nResponse:\n");
Console.WriteLine(JsonPrettyPrint(contentString));
Console.WriteLine("\nPress Enter to exit...");
}
阅读documentation,我看到对于ws“创建一个FaceList”,你必须调用Http Put
方法,内容类型为application/json
。
这里有这项服务的描述:
FaceList - 创建使用用户指定的faceListId,名称和可选的userData创建空面列表。一个订阅中最多允许64个面部列表。面部列表是面部列表,最多1,000个面部,并由面部使用 - 查找类似。创建后,用户应使用FaceList - Add Face导入面。面部存储在服务器上,直到调用FaceList - Delete。 “查找类似”用于查找类似名人的面孔,类似的面部过滤或轻型面部识别等场景。但如果实际使用是识别人,请使用PersonGroup / LargePersonGroup和Face - Identify。当面部数量很大时,请考虑LargeFaceList。它可以支持多达1,000,000个面孔。
Http方法PUT
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");
var uri = "https://westcentralus.api.cognitive.microsoft.com/face/v1.0/facelists/{faceListId}?" + queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{\"name\": \"sample_list\",\"userData\": \"User-provided data attached to the face list.\"}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PutAsync(uri, content);
// Get the JSON response.
string contentString = await response.Content.ReadAsStringAsync();
// Display the JSON response.
Console.WriteLine("\nResponse:\n");
Console.WriteLine(JsonPrettyPrint(contentString));
Console.WriteLine("\nPress Enter to exit...");
}
目前,位置基本网址是:
请求参数
faceListId
:有效字符是小写或数字或' - '或'_'的字母,最大长度为64。
请求标头
Content-Type
(可选):发送到API的正文的媒体类型。
Ocp-Apim-Subscription-Key
:订阅密钥,提供对此API的访问。在您的Cognitive Services帐户中找到。
请求正文
请求body
中的JSON字段:
{
"name": "sample_list",//Name of the created face list, maximum length is 128.
"userData": "User-provided data attached to the face list." //Optional user defined data for the face list. Length should not exceed 16KB.
}
我希望这可以帮到你