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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用请求正文从Microsoft Computer Vision调用Face API是“application / json”相关的知识,希望对你有一定的参考价值。

我正在尝试从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("
Response:
");
    Console.WriteLine(JsonPrettyPrint(contentString));
    Console.WriteLine("
Press 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("
Response:
");
    Console.WriteLine(JsonPrettyPrint(contentString));
    Console.WriteLine("
Press Enter to exit...");
}

目前,位置基本网址是:

  • 美国西部 - westus.api.cognitive.microsoft.com
  • West US 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
  • Korea Central - 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的访问。在您的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.
}

我希望这可以帮到你

以上是关于使用请求正文从Microsoft Computer Vision调用Face API是“application / json”的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient.SendAsync 不发送请求正文

oauth2错误AADSTS90014:请求正文必须包含以下参数:'grant_type'

C# - POST 请求中的正文内容

82教育Microsoft: US Schools Short on Computer Science Training

无法使用 Express.js 从请求中获取 POST 正文

使用Retrofit(Okhttp)时如何从android studio中的log cat复制请求正文,标头(不带标签)?