使用请求正文从Microsoft Computer Vision调用Face API是“ application / json”

时间:2019-01-25 06:25:48

标签: c# api microsoft-cognitive azure-cognitive-services

我正在尝试从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...");
}

1 个答案:

答案 0 :(得分:0)

阅读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方法 放

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...");
}

当前,位置基准网址是那些:

  • 美国西部-westus.api.cognitive.microsoft.com
  • 美国西部2-westus2.api.cognitive.microsoft.com
  • 美国东部-eastus.api.cognitive.microsoft.com
  • 美国东部2-eastus2.api.cognitive.microsoft.com
  • 美国中西部地区-westcentralus.api.cognitive.microsoft.com
  • 美国中南部-southcentralus.api.cognitive.microsoft.com
  • 西欧-westeurope.api.cognitive.microsoft.com
  • 北欧-northeurope.api.cognitive.microsoft.com
  • 东南亚-southeastasia.api.cognitive.microsoft.com
  • 东亚-eastasia.api.cognitive.microsoft.com
  • 澳大利亚东部-australiaeast.api.cognitive.microsoft.com
  • 巴西南部-brazilsouth.api.cognitive.microsoft.com
  • 加拿大中部-canadacentral.api.cognitive.microsoft.com
  • 印度中部-centralindia.api.cognitive.microsoft.com
  • 英国南部-uksouth.api.cognitive.microsoft.com
  • 日本东部-japaneast.api.cognitive.microsoft.com
  • 美国中部-centralus.api.cognitive.microsoft.com
  • 法国中部-francecentral.api.cognitive.microsoft.com
  • 韩国中央-koreacentral.api.cognitive.microsoft.com
  • 日本西部-japanwest.api.cognitive.microsoft.com
  • 美国中北部-northcentralus.api.cognitive.microsoft.com

请求参数

faceListId:有效字符是小写字母或数字或'-'或'_',最大长度为64。

请求标头

Content-Type (可选):发送到API的正文的媒体类型。

Ocp-Apim-Subscription-Key :订阅密钥,可用于访问此API。在您的认知服务帐户中找到。

请求正文

请求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.
}

希望对您有帮助