PostAsync после выполнения немедленно возвращает от того, где унаследовано - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь добавить лицо к гарнитуре в Face ++ API.Но когда я пытаюсь сделать HTTP-запрос на публикацию, происходит сбой в методе PostAsync.Он просто сразу возвращается туда, откуда он был унаследован.Как и в моем примере, после выполнения var response = await client.PostAsync(addUrl, formData) он сразу возвращается к методу Main, не давая мне никакого ответа.Пытался .ConfigureAwait(false), но это не помогло.Может быть, у вас есть идеи, почему это происходит?

Документация по API: https://console.faceplusplus.com/documents/40622182

API:

   public async Task<string> AddFace(string faceToken)
    {
        try
        {
            HttpContent keyContent = new StringContent(Keys.apiKey);
            HttpContent secretContent = new StringContent(Keys.apiSecret);
            HttpContent facesetTokenContent = new StringContent(facesetToken);
            HttpContent faceTokenContent = new StringContent(faceToken);

            using (var formData = new MultipartFormDataContent())
            {
                formData.Add(keyContent, "api_key");
                formData.Add(secretContent, "api_secret");
                formData.Add(facesetTokenContent, "faceset_token");
                formData.Add(faceTokenContent, "face_tokens");

                var response = await client.PostAsync(addUrl, formData).ConfigureAwait(false);

                string responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                return responseString;
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);

            return null;
        }
    }

MAIN:

    static void Main()
    {
        Bitmap b = new Bitmap(@"C:\dev\ProtingaVizija\SmartVision\d.jpg");
        FaceRecognition fr = new FaceRecognition();

        var face = JsonConvert.DeserializeObject<AnalyzedFaces>(fr.AnalyzeImage(b));
        string faceToken = face.faces[0].face_token;

        Faceset fs = new Faceset("d8d6679e5b37c2612e420f94f0225159");
        fs.AddFace(faceToken);

        string x = fs.GetDetail().Result;
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new FormFaceDetection());
    }

1 Ответ

0 голосов
/ 01 октября 2018

Я только что отредактировал Основное, и оно работает!

string res = fs.AddFace(faceToken).Result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...